2015-11-11 2 views
0

В Parse я случайно удалил столбец под названием «любит», который подсчитывает количество понравившихся пользователям сообщений для своего блога. Я снова создал столбец с тем же именем, но теперь, когда я запускаю свое приложение, он выходит из строя, и я получаю это сообщение «неожиданно найдено нуль при распаковке необязательного значения». Он указывает на мой код, где его предполагается получить «нравится» в моей cellForRowAtIndexPath. Я вставил свой код ниже. Есть ли способ решить эту проблему и остановить ее от сбоев?Swift: приложение вылетает после удаления столбца в Parse

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

'let like = object [(" нравится ")] как! Int' line? – AdamPro13

+0

yes thats the line – JoshyBroheme

ответ

0

Я бы осмотрел, что происходит с object, если бы я был вами. Вы явно не получаете данные, которые, как вы ожидали, будут там. В качестве временной меры, вы можете изменить let like = object["likes"] as! Int к

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

Если вы сделаете это, вы также хотите, чтобы реализовать метод prepareForReuse в BlogCell установить текст этого лейбла, чтобы nil или иначе вы могли бы иметь некоторые странные повторного использования клеток ошибок.

+0

Но почему это произошло после того, как я удалил столбец ?. Он отлично работал до – JoshyBroheme

+0

. Мой опыт работы с Parse довольно минимален, поэтому я не уверен. Я бы предположил, что у вас есть опечатка в имени столбца, есть какое-то кеширование на стороне сервера, или, возможно, Parse не понравилось, что оно имеет то же имя, что и предыдущий столбец. Вы должны исследовать, что вы возвращаетесь с сервера. – AdamPro13

0

Если вы удалите столбец из uitableview, вам необходимо удалить данные из источника данных и обновить индекс удаления или перезагрузить всю таблицу. Ищите, если вам не хватает этого шага

Смежные вопросы