iPad --- проблема управляемого объекта, когда [self.tableViewSection reloadData] - PullRequest
0 голосов
/ 20 мая 2010

Я создаю приложение-агрегатор новостей, которое загружает XML-канал каждые 4 минуты. После загрузки xml я очищаю все, удаляя все объекты в базе данных, затем сохраняю новые объекты обратно в базу данных. Затем я вызываю [self.tableViewSection reloadData];, чтобы перезагрузить tableView. Вот когда я получаю проблемы. Как только код попадает в раздел, где я получаю доступ к новому контенту [[managedObject valueForKey:@"event_text"] description], происходит сбой с:

*** Завершение приложения из-за необработанного исключения 'NSObjectInaccessibleException', причина: «CoreData не может выполнить ошибка для '0x4b3f6a0 ''

Теперь из потока, который я описал сверху, мне кажется странным, что tableView заполняется правильно при следующем запуске приложения с «новыми» данными, которые я выбрал в предыдущем сеансе. Так что не все данные повреждены, но мне кажется, что что-то идет не так, когда я перезагружаю управляемый объект после сохранения новых данных.

Также имейте в виду, что это приложение отлично работает на iPhone, а iPad - это проблема.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Можете ли вы рассказать подробнее об обработке удаления?

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

0 голосов
/ 20 мая 2010

Я нашел решение, вам нужно сказать fetchedController снова выполнить executeFetch перед перезагрузкой новых данных.

-(void)reloadFetchController
{
    NSError *error = nil;
    if (![[self fetchedResultsController] performFetch:&error]) 
    {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
}

Кто-нибудь знает, почему это отличается в iPhone OS3.0 и 3.2

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