gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:47:00 25 4
gpt4 key购买 nike

当我看到“初始化核心数据堆栈代码”时,我正在从苹果指南学习核心数据

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

我不明白为什么你需要在第 37 行再次获取指向 psc 的指针,而它已经在第 27 行完成。 block 作用域不是一直到它嵌入的函数吗?

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

最佳答案

在 block 捕获状态的时间和 block 被执行的时间之间,mocpsc需要操作的可能已经改变。

调用 [self managedObjectContext] ,该竞争条件大部分被消除。主要是因为它是一个并发队列,因此,其他一些队列可能会与 moc 混淆。或 psc同时。

IE。该代码在一定程度上针对并发问题进行了强化。

关于ios - 核心数据初始化堆栈中的冗余代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com