gpt4 book ai didi

objective-c - NSMergeByPropertyObjectTrumpMergePolicy 与 NSMergeByPropertyStoreTrumpMergePolicy

转载 作者:可可西里 更新时间:2023-11-01 03:33:14 24 4
gpt4 key购买 nike

在我的多线程应用程序中,主线程和一个或多个后台线程可以同时访问、获取和更改我的核心数据存储中的信息。对于每个线程,我正在创建一个新的 NSManagedObjectContext。但是,NSManagedObjectContext 的每个实例都使用相同的“NSPersistentStoreCoordinator”实例(存储在单例中的其他地方)。

我的问题是关于 NSManagedObjectContext 的每个实例的合并策略。如果我为后台线程设置一个合并策略 (NSMergeByPropertyStoreTrumpMergePolicy) 并为主线程设置另一个策略 (NSMergeByPropertyObjectTrumpMergePolicy) 是否有内在的好处?

在我的 NSMangagedObjectContext getter 中,我有以下条件:

    if ( [NSThread isMainThread] ) {

[_context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];

} else {

[_context setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
}

谢谢。

编辑:有必要吗?对于两种类型的线程,我应该只默认使用一种策略而不是另一种策略吗?

最佳答案

我最终选择了这个解决方案(一年多以前),但由于最近没有收到对这个问题的回答,我决定提出自己的解决方案。

NSManagedObjectContext *context;

if ( [NSThread isMainThread] ) {

context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[context setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];

} else {

context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[context setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];

}

关于objective-c - NSMergeByPropertyObjectTrumpMergePolicy 与 NSMergeByPropertyStoreTrumpMergePolicy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com