【发布时间】:2016-10-27 00:49:11
【问题描述】:
我使用这样的核心数据:
- (NSManagedObjectContext *)managedObjectContext {
@synchronized(self) {
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [NSManagedObjectContext new];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
}
return _managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel {
@synchronized(self) {
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"DB" ofType:@"momd"];
if (path) {
NSURL *momURL = [NSURL fileURLWithPath:path];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
}
}
return _managedObjectModel;
}
但有时我会崩溃: 集合 <__nscfset:> 在枚举时发生了变异。 怎么了?如何在多线程中使用核心数据?
【问题讨论】:
标签: ios objective-c multithreading core-data