类型“任何”已经在Xcode 8.1没有下成员斯威夫特3

问题描述:

我下面This Tutorial 和我面临的问题类型“任何”有没有下会员当我定义的ViewController.Swiftm我的标题和消息在等待你的一种建议
类型“任何”已经在Xcode 8.1没有下成员斯威夫特3

enter image description here 这里是代码:

视图控制器:

import UIKit 
import Firebase 
import FirebaseDatabase 

struct postStruct { 
let title : String 
let message : String 
} 


class TableViewController: UITableViewController { 

let posts = [postStruct]() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    let databaseRef = FIRDatabase.database().reference() 
    databaseRef.child("posts").queryOrderedByKey().observe(.childAdded, with: { (snapshot) in 

    let title = snapshot.value!["title"] as! String 
    let message = snapshot.value!["message"] as! String 

     self.posts.insert(contentsOf: postStruct(title: title , message: message), at: index, 0) 
     self.tableView.reloadData() 
    }) 

    post() 

} 

func post() { 
    let title = "Title" 
    let message = "Message" 
    let post:[String:AnyObject] = ["title":title as AnyObject,"message":message as AnyObject] 

    let databaseRef = FIRDatabase.database().reference() 
    databaseRef.child("posts").childByAutoId().setValue(post) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return posts.count 
} 

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") 

    let label1 = cell?.viewWithTag(1) as! UILabel 
    label1.text = posts[indexPath.row].title 

    let label2 = cell?.viewWithTag(2) as! UILabel 
    label2.text = posts[indexPath.row].message 


} 

} 
+3

看起来你错过了几十个类似的问题和他们的答案存在,当你做了研究这个问题的问题... *咳嗽* – Moritz

+0

@EricAya我看了十几个第一。 –

+0

@EricAya他们有些不同。 –

您需要首先投下snapshot.value as? [String: AnyObject],因为编译器不知道什么类型的snapshot.value是。

像这样:

if let value = snapshot.value as? [String: AnyObject] { 

     let title = value["title"] as! String 
     let message = value["message"] as! String 
     self.posts.insert(contentsOf: postStruct(title: title, message: message), at: index, 0) 
     self.tableView.reloadData()  
    } 
+0

谢谢akash我应该在哪里放置这个以及我将要移除的东西? –

+0

@JackDowson从“让标题”到以上“后()” – Aakash

+0

仍然收到很多错误亲爱的 –