Swift:删除 Parse 中的列后应用程序崩溃

Swift: app crashes after deleting a column in Parse

在 Parse 中,我不小心删除了一个名为 "likes" 的列,该列计算用户为其博客 post 收到的点赞数。我再次使用相同的名称创建了该列,但现在当我 运行 我的应用程序崩溃时,我收到了这条消息 "unexpectedly found nil while unwrapping an Optional value"。它指向我的代码,它应该在我的 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
}

如果我是你,我会检查 object 发生了什么。您显然没有获得预期的数据。作为权宜之计,您可以将 let like = object["likes"] as! Int 更改为

if let like = object["likes"] as? Int {
   cell.likeTracker.text = "\(like)"
}

如果这样做,您还需要在 BlogCell 中实现 prepareForReuse 方法以将该标签的文本设置为 nil 否则您可能会遇到一些奇怪的单元格重用错误.

如果您从 uitableview 中删除列,您需要从数据源中删除数据,并更新删除索引或重新加载整个 table 。 寻找您是否缺少该步骤