Как избежать сбоев в tableView (_: cellForRowAt)? - PullRequest
0 голосов
/ 23 сентября 2018

В Fabric я вижу много сбоев в разделе "tableView(_:cellForRowAt)".Для этого исключения не существует определенного сценария.Это может произойти в любое время и на любом экране. Нет данных для анализа сбоев.Только я знаю, что в "tableView(_:cellForRowAt)" есть сбои.

Я хочу предотвратить подобные исключения, хотя я не знаю причину.Могу ли я использовать такой метод, как предотвращение исключения NullPointer (if (! Null))?

Ниже двух сбоев в разных разделах кода;

let XXX = Constants.sharedInstance.url+"/service/photo/"+userdas[(indexPath as NSIndexPath).row].id!+"/"+userdas[(indexPath as NSIndexPath).row].photo!+"/2"

и

self.notificationModel[indexPath.row].userNot.XXX?.XXXImageView = image

1 Ответ

0 голосов
/ 23 сентября 2018

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

userdas[(indexPath as NSIndexPath).row].id!

userdas[(indexPath as NSIndexPath).row].photo!

self.notificationModel[indexPath.row].userNot.XXX?.XXXImageView

Я предполагаю, что в третьем случае XXXImageView неявно развернута UIImageView это также может быть nil.

Чтобы избежать сбоя в вашем первом разделе, вы можете использовать guard

guard let id = userdas[indexPath.row].id, 
      let photo = userdas[indexPath.row].photo else {
    return 
}
let XXX = Constants.sharedInstance.url+"/service/photo/"+id+"/"+photo+"/2"

Я не уверен, что вы делаетево втором разделе, но вам просто нужно убедиться, что развернутые параметры также не nil

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...