我在Lion中使用了一項新功能,子託管對象上下文用於:「管理可放棄的編輯,例如在檢查器窗口或視圖中。臨時託管對象ID和子託管對象上下文
當我從父MOC傳遞一個託管對象ID到子MOC時,如果父MOC從未保存過,我會得到一個錯誤:「嘗試訪問未在存儲中找到的對象。
NSManagedObjectContext *parentContext = [(NSPersistentDocument *)[[[self window] windowController] document] managedObjectContext];
self.subMOC = [[[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType] autorelease];
[subMOC setParentContext:parentContext];
NSManagedObjectID *objectValueID = [[[self superview] valueForKey:@"objectValue"] objectID];
self.subObjectValue = [subMOC existingObjectWithID:objectValueID error:&err];
上面的工作很好,如果文檔已被保存。如果沒有保存,我有什麼選擇?
這不是一個線程安全的方法,如果它擔心你。你在這裏傳遞對象。使用託管對象ID是安全的。但是,我堅持你是一樣的情況:) –