NSPrivateQueueConcurrencyType Core Data и совместное использование объектов между потоками

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

36
задан samvermette 26 December 2011 в 17:45
поделиться