从Firebase下载json并填充TableView Swift 3

时间:2017-01-21 19:23:23

标签: json uitableview download swift3 firebase-realtime-database

我一直在尝试将下面的代码从Swift 2转换为Swift 3,但我遇到了错误,其中一些我已经补救但有一些我无法解决。任何帮助将非常感激。当应用程序在行

显示TableView时,应用程序崩溃
   let property = snapshotValue!["property"] as? String

显示错误消息:致命错误:在解包可选值时意外发现nil

post.self还存在一个问题,其中包含post类型的消息'表达式。类型未使用

struct  post {
    let property :  String!
}

class TableViewController: UITableViewController {

var posts = [post]()

override func viewDidLoad() {
    super.viewDidLoad()

    let databaseRef = FIRDatabase.database().reference()

    databaseRef.child("users").queryOrderedByKey().observe(.childAdded, with: {
        snapshot in

        var snapshotValue = snapshot.value as? NSDictionary
        let property = snapshotValue!["property"] as? String
        snapshotValue = snapshot.value as? NSDictionary


        self.posts.insert(post(property: property), at: 0)
        self.tableView.reloadData()
    })
post.self

}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // Return the number of rows in the section.
    return posts.count
}

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

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].property
    return cell!
}

}

非常感谢期待

1 个答案:

答案 0 :(得分:0)

我没有意识到,尽管我进行了搜索,但这个确切的问题已经被提出并得到了解答。

发布问题的人将他的代码更新为答案。它对我有用:-) StackOverflow页面的链接是:

Swift 3 Breaks Cell For Row At Index Path