Первоначальная coredata сохранить заморозки приложение - PullRequest
1 голос
/ 17 ноября 2011

У меня есть приложение iOS, использующее coredata с тремя разными моделями.Данные извлекаются из канала json с сервера, а затем сохраняются.Каждый вызов API выполняется в потоке с использованием NSOperationQueue, поэтому они никогда не выполняются одновременно.При последнем вызове я сохраняю в самой большой сохраняемой модели, именно после сохранения происходит зависание приложения.Пользовательский интерфейс перестает отвечать на запросы, и отладчик не выдает ошибок.Это происходит только при первой загрузке приложения, после чего каждая последующая загрузка работает идеально.Я попытался загрузить только последний вызов API, и ошибка все еще происходит.Я получаю делегата обратного вызова controllerDidChangeContent: и ничего не делать в методе.Я в тупике.Спасибо вам за помощь.

1 Ответ

2 голосов
/ 18 ноября 2011

Это «замораживает» ваше приложение, потому что вы, скорее всего, объединяете сохранение обратно с основным NSManagedObjectContext через NSManagedObjectContextDidChangeNotification.Это известное ограничение до iOS 5.0.

Либо вы можете обновить до 5.0 и использовать родительский дочерний дизайн MOC, который был добавлен, либо вы можете пропустить объединение контекстов и -reset основного контекста и заставить его перезагрузитьсоответствующие данные после сохранения.

...