核心数据初始化堆栈中的冗余代码

时间:2016-01-15 04:09:55

标签: ios objective-c core-data

当我看到"初始化核心数据堆栈代码时,我正在从apple指南中学习核心数据"

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
    NSError *error = nil;
    NSPersistentStoreCoordinator *psc = [[self managedObjectContext] persistentStoreCoordinator]

我不明白为什么你需要在第37行再次获得指向psc的指针,当它已经在第27行完成时,dosn' ta块范围一直到它所嵌入的函数?

doc for https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/InitializingtheCoreDataStack.html#//apple_ref/doc/uid/TP40001075-CH4-SW1

的链接

1 个答案:

答案 0 :(得分:3)

在块捕获状态的时间和块执行的时间之间,需要操作的CameraRollFile | Setting可能已更改。

通过调用moc,该竞争条件主要被淘汰。 主要是只是因为它是一个并发队列,因此,其他一些队列可能同时与psc[self managedObjectContext]混淆。

即。代码在并发问题方面有所加强。