に私はiOSの7をサポートするために、私のアプリを更新していると、私の[context save];
内のいずれかの画面上で、私は次のエラーを取得する問題に直面されています:iOS6でNSMergeConflict iOS7
NSCocoaErrorDomain Code=133020 "The operation couldn’t be completed. (Cocoa error 133020.)" UserInfo=0x1115a6d0 {conflictList=(
"NSMergeConflict (0x1115a670) for NSManagedObject (0xf25c850) with objectID '0xf25c070 <x-coredata://76AF57C8-F7FF-4880-B06B-63F8B780C96D/Screen/p7>' with oldVersion = 5 and newVersion = 6
and old object snapshot = {\n index = 3;\n message = \"<null>\";\n status = 0;\n} and new cached row = {\n index = 3;\n message = \"<null>\";\n status = 0;\n}"
この問題は発生しません。 。
更新:managedObjectContext
ため コード-(NSManagedObjectContext *)managedObjectContextForCurrentThread{
if ([NSThread isMainThread])
{
NSManagedObjectContext *parentContext = self.mainManagedObjectContext.parentContext;
[parentContext performBlockAndWait:^{
NSMergePolicy *mergePolicy = [[NSMergePolicy alloc] initWithMergeType:NSMergeByPropertyObjectTrumpMergePolicyType];
[[self mainManagedObjectContext] setMergePolicy:mergePolicy];
}];
return self.mainManagedObjectContext;
}
else
{
NSMutableDictionary *threadDict = [[NSThread currentThread] threadDictionary];
NSManagedObjectContext *threadContext = [threadDict objectForKey:kCGMManagedObjectContextKey];
if (threadContext == nil)
{
threadContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
NSManagedObjectContext *parentContext = self.mainManagedObjectContext.parentContext;
[parentContext performBlockAndWait:^{
NSMergePolicy *mergePolicy = [[NSMergePolicy alloc] initWithMergeType:NSMergeByPropertyObjectTrumpMergePolicyType];
[parentContext setMergePolicy:mergePolicy];
}];
[threadContext setParentContext:self.mainManagedObjectContext];
[threadDict setObject:threadContext forKey:kCGMManagedObjectContextKey];
}
return threadContext;
}
}
私が直面している解決策はありますか?私はなぜこの問題があるのか理解できませんが、iOS 6は文句を言っていません。私の場合は私が編集していますManagedObjectは、私は、なぜそれがエラーをマージ文句を言うべきで保存しています同じManagedObjectContextからであるとして、これは起こるべき理由何らかの理由が表示されないのですか? –