我正在慢慢迁移到 iOS 5 Core Data 新 API,我正在调查 NSConfinementConcurrencyType
。
来自苹果文档
在这种情况下,默认值的含义对我来说并不是很明显。它的真正含义是什么?
通常,如果我需要在 CD 中执行一个非常长的导入操作,我会设置一个新的 NSOperation
类并创建它自己的上下文。
- (void)main
{
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
// other code here...
}
现在,我可以利用父上下文并执行以下操作:- (void)main
{
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
[moc setParentContext:[self masterMoc]];
// other code here...
}
说了这么多,那么 NSConfinementConcurrencyType
呢?什么是典型的使用示例? 最佳答案
默认情况下,Apple 意味着这是 Core Data MOC 一直工作的标准方式。 MOC 必须在使用它的线程上创建。在上面的代码中,您遵循标准的历史上有效的 MOC 使用模式。其他样式的 MOC 创建和管理自己的后台队列或绑定(bind)到主队列。这可以稍微简化一些事情。或不。首先,它们是 MOC 的面向块的接口(interface)。有时这是很好的。 (虽然块是新的热点,但它们并不是一个纯粹的好东西。我见过由懒惰的程序员编写的面向块的代码。他们在他们的方法中留下了太多的复杂性。由于微妙的交互,这些代码的维护可能非常困难。 )
父上下文的思想与线程限制的思想是正交的。父上下文是快速关联 MOC 所需的大部分参数的一种方式。 (Apple 不清楚 MOC 之间实际进行的内容。他们也不讨论合并政策问题。)我相信,您仍然需要了解 MOC 之间的通知。
如果我可以建议,不要过度考虑这些事情。 Lion/iOSv5 对核心数据的更改相当温和。
关于ios - 迁移到 iOS 5 Core Data 新 API : understand NSConfinementConcurrencyType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10900158/