【发布时间】:2017-08-17 23:27:04
【问题描述】:
这两个函数调用似乎有冲突:
MagicalRecord.save({ (localContext) in
let items = NewsItem.staleNewsItems(in: localContext)
if ((items?.count)! > 0){
items?.forEach({ (item) in
if let object = item as? NSManagedObject {
object.mr_deleteEntity(in: localContext)
}
})
}
})
和
- (void) buildAndFetchFRCsInContext:(NSManagedObjectContext*)context {
self.newsItemsFRC = [self buildFetchResultsControllerForClass:[NewsItem class] sortedBy:@"id" withPredicate:nil inContext:context];
[context performBlock:^{
__unused NSDate* start = [NSDate date];
NSError* error;
[self.newsItemsFRC performFetch:&error]; // this line crashes
[self calculateAndBroadcastCounts];
}];
}
这个保存调用线程安全吗?如果是这样,什么会导致这两个函数相互崩溃?
【问题讨论】:
-
看看这个:stackoverflow.com/questions/22509735/…,并发使用屏障
标签: objective-c swift core-data concurrency magicalrecord