Art*_*sev 7 cocoa-touch core-data objective-c ios
在我的多线程应用程序中,主线程和一个或多个后台线程可以同时访问,获取和更改核心数据存储中的信息.对于每个线程,我正在创建一个新的NSManagedObjectContext.但是,每个实例NSManagedObjectContext使用相同的"NSPersistentStoreCoordinator"实例(存储在单例中的其他位置).
我的问题是关于每个实例的合并政策NSManagedObjectContext.如果我为后台线程(NSMergeByPropertyStoreTrumpMergePolicy)和NSMergeByPropertyObjectTrumpMergePolicy主线程的另一个策略()设置一个合并策略,是否有内在的好处?
在我的NSMangagedObjectContext吸气器中,我有以下条件:
if ( [NSThread isMainThread] ) {
[_context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
} else {
[_context setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:有必要吗?对于两种类型的线程,我应该默认为一个策略而不是另一个策略吗?
我最终采用了这个解决方案(一年多前),但由于我最近没有收到这个问题的答案,所以我决定提出自己的解决方案。
NSManagedObjectContext *context;
if ( [NSThread isMainThread] ) {
context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
} else {
context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[context setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |