पर मैं आईओएस 7 समर्थन करने के लिए मेरे एप्लिकेशन को अद्यतन किया है और इस समस्या का सामना करना पड़ गया है कि में स्क्रीन से एक पर मेरी [context save];
मैं निम्नलिखित त्रुटि मिलती है: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}"
iOS6 पर इस समस्या नहीं होती है ।
अद्यतन: कोड के लिए 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;
}
}
ठीक उसी समस्या का सामना कर रहा हूं, जिस समाधान पर आप आए थे? मुझे समझ में नहीं आ रहा है कि यद्यपि यह समस्या क्यों है, आईओएस 6 शिकायत नहीं करता है। मेरे मामले में मुझे कोई कारण नहीं दिख रहा है कि ऐसा क्यों होना चाहिए क्योंकि प्रबंधित किए गए प्रबंधित ऑब्जेक्ट मैं एक ही प्रबंधित प्रबंधित ऑब्जेक्ट कॉन्टेक्स्ट से हूं जो मैं सहेज रहा हूं, यह त्रुटियों को मर्ज करने के बारे में शिकायत क्यों करनी चाहिए? –