我在我的模型中有一個名爲P的父實體我也有一個名爲C的子實體我使用內置到核心數據中的實體繼承功能,因爲這爲我解決問題(從我閱讀和理解的內容)。iOS實體繼承父數據中沒有檢索到兒童的提取
這裏是我的情況:
在我發展的早期版本,我在P實體創造了多項紀錄。後來我添加了C實體並將父實體設置爲P.C僅包含一個屬性。由於應用程序的設計,最好有實體繼承,而不是將屬性包含在父實體中。
縱觀網絡上和蘋果的文檔中的文章,我的理解是一個SQLite持久性存儲將是一個單一的表這可能會導致性能問題的所有屬性,但我接受這個(現在)。
見到這種情景,它似乎是由C獲取的所有條目將返回所有在P.我發現,情況並非如此的條目。測試的一位表示,這似乎是發生了什麼:
- 的對象持久化至P在C取不出來,但將在P的取
- 的對象持久化到C會取現身P和C的
- 刪除對象添加到C從P將來自P和C. 都刪除它
這是我的取代碼:
NSError *error;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"C"];
request.predicate = predicate;
request.includesSubentities = YES;
NSManagedObjectContext *moc = self.managedObjectContext;
NSArray *results = [moc executeFetchRequest:request error:&error];
謂詞爲零,以便獲取實體中的所有對象。提取請求中沒有錯誤。
這裏是我的問題:
- 有一個查詢,我應該對C可以返回原來只向對所有項目使用?
- 如果沒有,是否有辦法將C同步到P中的現有項目?
我在這個網站和其他網站上搜索了實體繼承,雖然有大量有用的信息,但似乎沒有人解決這個問題(儘管我可能錯過了某些我確定的東西)。
我非常希望能夠添加/編輯/刪除是與P牽強,但有結果的對象顯示C.這可能嗎?從我的早期測試中可以看出刪除工作正常,但肯定不會。編輯尚未經過測試。
任何和所有幫助讚賞!
編輯的工作原理如下預期。也就是說,從P中獲取,編輯對象,保存爲P.然後從C中獲取並按預期編輯。所以唯一的問題是原始帖子中問題的答案。 – gemini0725