NSFetchresultsController падает при удалении зависимых объектов - PullRequest
1 голос
/ 14 октября 2011

Я использую методы NSFetchResultsControlleDelegate из этого замечательного поста: http://iphonedevelopment.blogspot.com/2009/11/i-know-youre-tired-of-hearing-about.html Однако:

У меня особая ситуация, когда объекты в моем табличном представлении связаны друг с другом. Итак: если я удаляю объект, я получаю 2 события в обратном вызове: on для NSFetchedResultsChangeDelete и одно NSFetchedResultsChangeUpdate.

Сбой метода в ветви NSFetchedResultsChangeDelete из-за неверного indexPath. Я какое-то время смотрел на это и хотя и нашел какие-то обходные пути для этого, но пока не нашел чистого решения для этого случая. Есть намеки?

заранее спасибо

1 Ответ

1 голос
/ 14 октября 2011

Если удаленный объект является единственным объектом в его разделе табличного представления, раздел других объектов изменится.Изменение раздела также приведет к изменению indexPath.Если вы по-прежнему пытаетесь получить доступ к объекту, используя старый indexPath, приложение завершит работу.Чтобы обойти это, используйте параметр метода newIndexPath, если он доступен:

        NSIndexPath* ip = nil;
        if (newIndexPath != nil) {
            ip = newIndexPath;
        } else {
            ip = indexPath;
        }
        NSManagedObject *changedObject = [controller objectAtIndexPath:ip];

Надеюсь, это поможет.Ура, христианин

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