0

我想知道这种代码是否可以使用

NSManagedObjectContext *moc = [(AppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
for (NSDictionary *dict in objects) {
            Object *object = [NSEntityDescription insertNewObjectForEntityForName:@"object"
                                                     inManagedObjectContext:moc];
            // Populate model fields with appropriate dictionary keys
        }

我问的原因是建议您不要跨线程传递对托管对象上下文对象的引用,并想知道这是否确实是这里发生的事情。

4

3 回答 3

3

快速枚举 usingfor (object in collection)与线程无关。所有这些代码都在同一个线程上运行。

于 2013-10-19T22:11:35.563 回答
0

您正在使用一个 ManagedObjectContext,您的代码中没有线程问题。你做对了。所有的代码都是顺序的。如果要使用多个上下文,每个上下文都在一个线程中,则应注意多线程。

于 2013-10-19T22:12:13.060 回答
0

如果该插入操作是线程化的,您应该考虑创建一个后台的 NSManagedObjectContext 来处理它,这是一个太大的帖子,并且之前在 SO 上回答过。

执行块:

于 2013-10-19T22:03:09.107 回答