我已经阅读了有关 @synchronized 和 NSManagedObjectContext 的 Apple 文档,但我根本看不清楚。
谁能解释一下这两段代码之间的区别:
这里我们有一个关键部分,我们在其中对 NSManagedObjectConext 进行查询
@synchronized(self) {
array = [mainContext executeFetchRequest:request error:&error];
if (error != nil) {
NSLog(@"Obj list fetch error: %@", error);
exit(-1);
}
}
在这里,我们在锁定的 NSManagedObjectConext 中执行相同的查询
[mainContext lock];
array = [mainContext executeFetchRequest:request error:&error];
if (error != nil) {
NSLog(@"Obj list fetch error: %@", error);
exit(-1);
}
[mainContext unlock];
每个代码块的含义是什么?哪一个是正确的?
非常感谢,我有点困惑。