В iOS 5 появился новый способ быстрого получения данных в фоновом потоке путем инициализации MOC с помощью NSPrivateQueueConcurrencyType
, а затем выполнения выборки в performBlock:
Одним из основных принципов Core Data было то, что вы не можете совместно использовать управляемый объект между потоками/очередями. Остается ли дело с performBlock:
? Есть следующее:
[context performBlock:^{
// fetch request code
NSArray *results = [context executeFetchRequest:request error:nil];
dispatch_async(dispatch_get_main_queue(), ^(void) {
Class *firstObject = [results objectAtIndex:0];
// do something with firstObject
});
}];
все еще неприемлемо, так как я делюсь своим массивом результатов/объектами между очередью bg и основной очередью? Должен ли я использовать идентификаторы управляемых объектов для этого?