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

时间:2015-11-11 18:22:32

标签: ios swift parse-platform pfquery

在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
}

2 个答案:

答案 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中删除列,则需要从数据源中删除数据,并更新删除索引或重新加载整个表。 寻找你是否错过了那一步