有幾個原因,我要創建2 ManagedObjectContext,每一個具有不同的NSPersistentStoreCoordinator(一個是NSSqlLiteType,所述水淨化是一個NSInMemoryType)。 SQLLite數據庫的某些對象必須訪問InMemory數據庫中的對象。我在Apple文檔中找到了一種使用提取的屬性進行工作的方法(所以他們說,看看「Cross-Store Relationships」段落:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html)。 的事情是,在執行謂詞的時候,我得到一個KVC兼容的錯誤:
終止應用程序由於未捕獲的異常「NSUnknownKeyException」,原因:「[valueForUndefinedKey:]:此類不是密鑰值編碼兼容的關鍵站點「。
這是模型。 我有一個存儲在SQL Lite數據庫中的ManagedStation對象。我有一個存儲在內存中的ManagedPassingTime對象。 ManagedStation應該具有ManagedPassingTimes的NSSet。爲此,我在ManagedPassingTime中添加了一個stationId屬性。加載工作站時,創建所需的ManagedPassingTime對象,並將ManagedPassingTime的stationId設置爲ManagedStation.identifier屬性。最後,我在ManagedStation對象中創建了一個提取屬性「passingTimes」,它具有以下謂詞:$ FETCH_SOURCE.identifier MATCHES $ FETCHED_PROPERTY.stationId。獲取的屬性將ManagedPassingTime對象設置爲目標。
由於stationId是ManagedPassingTime的一個屬性,我不明白爲什麼使用KVC無法訪問該值。我甚至試圖覆蓋ManagedPassingTime中的valueForUndefiniedKey:(NSString *)鍵方法,但似乎我從來沒有輸入這個方法。
如果你們中的任何一個人有最小的想法,這將是最有幫助的。 謝謝。