我正在慢慢迁移到 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/

10-12 17:03