Для приложения iPhone, в которое должна быть вставлена куча данных, прежде чем пользователь сможет выполнить свои действия при первом запуске, где находится правильное место (в коде) для вставки этих данных? Я просматриваю от 700 до 800 записей между несколькими таблицами.
Сначала я попытался сделать это в applicationDidFinishLaunching:
. Это работало нормально для iPhone 3gs, но вызвало постоянный сбой при первом запуске 3g. Покопавшись в проблеме, я обнаружил, что на 3g приложение не реагировало достаточно быстро (возможно, потому, что оно было загружено, выгружая множество данных в постоянное хранилище), поэтому ОС убивала его, предполагая, что оно не отвечает.
Чтобы исправить эту проблему, я переместил процесс инициализации данных из appdidfinishlaunching и создал другой поток из первого контроллера представления, который отображается при запуске. Это работает большую часть времени, но время от времени приложение вылетает с ошибкой 134030 в основных данных, которая, согласно справочнику Apple Constants, составляет:
NSPersistentStoreSaveError
Код ошибки, обозначающий, что постоянное хранилище вернуло ошибку для операции сохранения. Этот код относится к ошибкам, таким как проблемы с разрешениями.
Эта ошибка появляется при вызове save:
для управляемогоObjectContext.