我一直在尝试将下面的代码从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!
}
}
非常感谢期待
答案 0 :(得分:0)
我没有意识到,尽管我进行了搜索,但这个确切的问题已经被提出并得到了解答。
发布问题的人将他的代码更新为答案。它对我有用:-) StackOverflow页面的链接是: