我有一個NSManagedObjectContext
其中兩個NSManagedObject
保存。爲什麼我在CoreData中使用objectWithID時不會得到相同的對象?
我打電話給在另一個線程的方法,我需要訪問這兩個NSManagedObject
所以我創建類似以下的孩子方面:
let childManagedContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
childManagedContext.parentContext = self.managedContext
當我這樣做:
let myNSManagedObject1 = childManagedContext.objectWithID(self.myNSManagedObject1.objectID) as! MyNSManagedObject
let myNSManagedObject2 = childManagedContext.objectWithID(self.myNSManagedObject2.objectID) as! MyNSManagedObject
myNSManagedObject1
和myNSManagedObject2
與self.myNSManagedObject1
和self.myNSManagedObject2
不同。有人可以解釋我爲什麼嗎?
另外,如果我用existingObjectWithID
而不是objectWithID
,看來我還是有錯對象爲我myNSManagedObject1
和myNSManagedObject2
關係:
relationShipObject = "<relationship fault: 0x170468a40 'relationShipObject'>"
我認爲使用'existingObjectWithID'實際上是強制這些對象的全部負載。謝謝 – Nico