在Parse中,我不小心删除了一个名为“赞”的列,该列计算用户为其博客帖子收到的喜欢的数量。我使用相同的名称再次创建了该列,但现在当我运行我的应用程序时它崩溃并且我收到此消息“在展开可选值时意外地发现了nil”。它指向我的代码,它假设在我的cellForRowAtIndexPath中接收“likes”。我粘贴了下面的代码。有什么方法可以解决这个问题并阻止它崩溃吗?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath?) -> PFTableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("BCell", forIndexPath: indexPath!) as! BlogCell
if let object : PFObject = self.blogPosts.objectAtIndex(indexPath!.row) as? PFObject {
cell.author.text = object["blogger"] as? String
cell.post.text = object["blogPost"] as? String
let dateUpdated = object.createdAt! as NSDate
let dateFormat = NSDateFormatter()
dateFormat.dateFormat = "h:mm a"
cell.timer.text = NSString(format: "%@", dateFormat.stringFromDate(dateUpdated)) as String
let like = object[("likes")] as! Int
cell.likeTracker.text = "\(like)"
}
return cell
}
答案 0 :(得分:0)
如果我是你,我会检查object
发生了什么。您显然无法获得预期存在的数据。作为权宜之计,您可以将let like = object["likes"] as! Int
更改为
if let like = object["likes"] as? Int {
cell.likeTracker.text = "\(like)"
}
如果您这样做,您还需要在prepareForReuse
中实施BlogCell
方法,将该标签的文字设置为nil
,否则您可能会遇到一些奇怪的细胞重用错误。
答案 1 :(得分:0)
如果从uitableview中删除列,则需要从数据源中删除数据,并更新删除索引或重新加载整个表。 寻找你是否错过了那一步