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 и основной очередью? Мне все еще нужно использовать для этого идентификаторы управляемых объектов?