2011-07-30 67 views
2

我有一個xcdatamodel,其中包含一組靜態庫中構建的實體。將NSManagedObjectID保存在CoreData中

我將這個靜態庫包含在一個項目中。我想在主項目中創建另一個模型,名爲Task的實體。我想在實體中有一個屬性,我可以在其中存儲在靜態庫中創建的實體的NSManagedObjectID。通過NSManagedObjectID,我可以輕鬆獲取主商店並獲取實體。 最後可能會有很多Task實體引用一個objectID。

可能嗎?我也明白,這聽起來像一個關係模型,Core Data不是,所以有更好的解決方案來處理這個問題?

感謝

回答

9

NSManagedObjectID本身沒有編碼兼容。但是,您可以獲取對象ID的URL表示並將其存儲。就像這樣:

myObject.externalTaskURL = [[task objectID] URIRepresentation]; 

然後,爲了獲取對象ID回去找回它是指任務對象後psc是你NSPersistentStoreCoordinator其中Task實體生活)

NSManagedObjectID* taskID = 
     [psc managedObjectIDForURIRepresentation:myObject.externalTaskURL]; 

製作肯定要從不這樣做到一個臨時的管理對象ID。

+0

謝謝,這正是我一直在尋找的。我會爲此而努力。但是,你知道是否有任何'CoreData'解決方案? – Leonardo

+0

@Leonardo - 沒有。您應該每個應用程序只有一個持久存儲協調器。 – PeyloW

0

您可以將託管對象ID作爲NSURL存儲在可轉換屬性中。