2016-12-31 73 views
-6

我下面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他們有些不同。 –

回答

0

您需要首先投下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

仍然收到很多錯誤親愛的 –