Когда я должен дать контекст Magical Record?

Я новичок в отличной магии Magical Record.

Когда мне нужно дать контекст методу MR?

Пример:

// with context
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
CheckinTypes *checkinType = [CheckinTypes MR_createInContext:localContext];

// without context
CheckinTypes *checkinType1 = [CheckinTypes MR_createEntity];

Какая разница между этими двумя возможностями?

1 ответ

Основное правило:

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

Однако реальный ответ более сложный. Использование основных данных в целом требует управления вашими контекстами для вашего конкретного сценария. Одним из распространенных сценариев является экран настроек, в котором параметры сохраняются в Core Data. Используя новый контекст и внося изменения в этот контекст, вы можете просто бросить контекст (т.е. Не сохранять), чтобы удалить любые временные изменения, которые пользователь не выполнил.

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

licensed under cc by-sa 3.0 with attribution.