persistentStoreManagedObjectContext против mainQueueManagedObjectContext

Добрый вечер!

Итак, у меня возникли проблемы с пониманием того, что, черт возьми, происходит при сохранении моих данных в Core Data. Прежде всего, быстрый вопрос:

1) Когда мне следует использовать persistentStoreManagedObjectContext, а когда - mainQueueManagedObjectContext ?! Прямо сейчас я всегда использую persistentManagedObjectContext, но я вижу, что при вызове RestKit «getObjectsPath» объект будет иметь mainQueueObjectContext. Это почему?!

Спасибо!


person abisson    schedule 17.03.2013    source источник


Ответы (1)


persistentStoreManagedObjectContext можно использовать для заполнения другого NSManagedObjectContext (например, для фонового потока).

Поэтому, если вы не выходите из основного потока при доступе к объекту, используйте mainQueueManagedObjectContext, и вы находитесь на безопасном сайте.

person flashfabrixx    schedule 21.03.2013
comment
Тогда вопрос нуба: как мне узнать, выхожу ли я из основного потока или нет? - person abisson; 24.03.2013
comment
Если вы не используете dispatch_async или NSOperation и не хотите использовать фоновый поток, ваше сохранение. Вкратце: когда вы не знаете, используете ли вы фоновый поток или нет, ваше сохранение;) - person flashfabrixx; 26.03.2013
comment
Привет! У меня все еще есть проблема с этим ... Недавно я столкнулся с проблемой, когда по какой-то причине CoreData не работает и так далее ... и я думаю, что это связано с этим. Я использовал постоянный вот так. dpaste.de/XDuc Должен ли я использовать вместо него основной, а затем выполнить SaveToPersistent? - person abisson; 05.03.2014
comment
Как уже упоминалось, здесь saveToPersistentStore:&error зарезервирован для использования с mainQueueManagedObjectContext. Вместо этого попробуйте использовать этот контекст. - person flashfabrixx; 05.03.2014