2014-11-23 2 views
0

Наше приложение использует CoreData для обработки и использования данных в нашем приложении. Теперь я хочу сделать этот процесс более стабильным. Проблемы с нашей системой начались с iOS 7 и, похоже, были более обширными на iOS 8. Поэтому я хочу сделать некоторые рефакторинг. У нас много пользователей, и я использую BugTracker для аналитики при сбоях. Im видя эти те много из-за нашего использования CoreData:Рекомендации CoreData для хорошей реализации

Object's persistent store is not reachable from this NSManagedObjectContext's coordinator 
--- 
Attempt to allocate 1048576 bytes for NS/CFData failed 
--- 
SIGSEGV 

Im использованием CoreData с CoreDataController, как Apple, предложил на их примерах. С 2 контекстами управляемых объектов для фона и основного.

Это инициируется контроллером SharedInstance ..

Есть ли рамки или страницы с более грохотом доказать пример CoreData. Поэтому, чтобы быть понятным, его работа с нашей системой на 100 000 пользователей, но большинство сбоев (15%) всех затронутых пользователей испытывают сбои при работе с CoreData. Итак, как я могу устранить их лучше всего?

+0

Просто угадывая, вы храните большой файл в своем CoreData? Если это так, не делайте этого, вместо этого храните большой файл в локальной файловой системе, тогда сохраните файлURL в CoreData. – John

ответ

0

Как вы, наверное, уже знаете, что CoreData не является потоковым файлом как таковым. Поэтому, если вы работаете с вашей базой данных в разных потоках, вам, вероятно, нужно больше заботиться о вашем стеке базы данных. В личном опыте я думаю, что трехслойный базовый стек данных более подходит для крупномасштабного приложения. (см .: http://www.cocoanetics.com/2012/07/multi-context-coredata/, http://floriankugler.com/blog/2013/4/2/the-concurrent-core-data-stack).

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

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

Смежные вопросы