Я медленно перехожу к новым API-интерфейсам IOS 5 Core Data, и я изучаю около NSConfinementConcurrencyType
.Перенос на iOS 5 Core Data новые API: понять NSConfinementConcurrencyType
яблочных документации
конфайнмента (NSConfinementConcurrencyType). Это значение по умолчанию. You обещают, что контекст не будет использоваться ни одним потоком, кроме одного , на котором вы его создали. (Это точно так же, потоковая требование, что вы использовали в предыдущих версиях.)
Дело в том, на самом деле не очевидно для меня смысл умолчанию в этом контексте. Что это значит?
Обычно, если мне нужно выполнить очень длительную операцию импорта на компакт-диске, я настроил новый класс NSOperation
и создал собственный контекст.
- (void)main
{
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
// other code here...
}
Теперь я могу воспользоваться родительским контекстом и выполните следующие действия:
- (void)main
{
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
[moc setParentContext:[self masterMoc]];
// other code here...
}
это сказал, что о NSConfinementConcurrencyType
? Что может быть типичным примером использования?
Заранее спасибо.
+ 1 для вашей поддержки. Итак, говорят, что создание контекста, как и во втором фрагменте, это то же самое, что и создание конфайнмента? Благодарю. –
С * Идея родительского контекста ортогональна идее ограничения потока. * Вы говорите, что мне нужно продолжать слушать уведомления в основном потоке или нет? Как я понял, при сохранении в фоновом контексте сохранение не записывается на диск, а в память. Сохраняет ли это слияние двух контекстов? –
Flex_Addicted, 'NSConfinementConcurrencyType' - тип контекста по умолчанию. Следовательно, 'NSManagedObjectContext.new' создает один из этих типов. Для получения любого другого типа MOC вам нужно использовать более специфичный инициализатор '-initWithConcurrencyType:'.Andrew – adonoho