我們有一個Listing實體和一個一對多關係的ListingAddress實體。沒有列表,ListingAddress不應該存在。我希望從清單的地址關係中刪除的任何ListingAddress都可以從上下文中刪除。這是可能的,還是我必須手工做?我可以指定從核心數據關係中刪除的對象應該被刪除嗎?
0
A
回答
3
你必須手工完成。
如果列表被刪除,則很簡單。請參閱Relationship Delete Rules。您可以將其設置爲「級聯」,從而相關對象將自動刪除。你仍然會當然需要save
上下文所做的任何更改:
級聯
的關係的目的地刪除的對象。 例如,如果您刪除某個部門,則同時啓動該部門中的所有員工。
但是在您的情況下,列表不會被刪除,您的孤立ListingAddress對象必須手動清理。下面是一個涵蓋這個問題了幾個帖子:
2
有沒有刪除的實體,當你從一個關係中刪除自動的方式,但你可以做相反的事情,你可以刪除實體從刪除它們時的關係。使用ListingAddress實體上的Nullify刪除規則。它仍然只需要一行代碼。你編碼刪除,而不是刪除。除非是多對多的關係,否則這應該適合你的目的。
+0
同意,你需要從刪除實體的角度來看待這個問題。讓核心數據管理關係完整性。 –
0
你可以在willSave方法檢查是否有ListingAddress的任何孤立的孩子,如果有任何,你可以將它設置爲刪除
override func willSave() {
super.willSave()
if self.deleted {
return
}
if self.listingInverseRelationship == nil {
self.managedObjectContext?.deleteObject(self)
}
}
相關問題
- 1. 核心數據刪除實體對象時也刪除所有關係對象
- 2. 使用級聯刪除核心數據中的對象關係
- 3. 在覈心數據中刪除與級聯的關係對象
- 4. 刪除核心數據中的對象
- 5. 刪除核心數據中的對象
- 6. Swift 3核心數據關係不會刪除相關對象
- 7. 核心數據關係,刪除
- 8. 核心數據:插入和刪除以多對多的關係
- 9. 核心數據刪除對象函數
- 10. 核心數據相關對象被刪除
- 11. 如何通過核心數據關係刪除所有對象?
- 12. 如何從TableView中刪除特定的核心數據對象
- 13. 核心數據刪除對象
- 14. 刪除核心數據對象
- 15. 核心數據刪除對象
- 16. 從核心數據中刪除特定對象
- 17. 核心數據中的可選關係(刪除和檢查)
- 18. 核心數據不保存已被刪除的關係
- 19. 從核心數據刪除對象 - 崩潰的應用程序
- 20. 核心數據刪除規則對多的關係,刪除時爲空
- 21. XCode - 刪除核心數據中的相關對象
- 22. 核心數據與SWIFT:如何從關係實體中刪除對象?
- 23. 在覈心數據中創建關係以執行刪除
- 24. 核心數據:從NSOperation中刪除導致'NSObjectInaccessibleException'的引用刪除對象
- 25. 核心數據刪除規則,刪除所有關係和實體(多對多)
- 26. 如何從swift中的核心數據中刪除對象3
- 27. NSFetchedResultsController核心數據行刪除相關對象後關閉
- 28. 從特定部分刪除核心數據對象
- 29. 刪除被管理對象後的核心數據錯誤
- 30. 刪除核心數據中的對象(類似對象/副本)
我以爲那些都是調用時刪除我的清單 - 我對如下情況感興趣:我將其地址關係設置爲空的NSSet。 – Simon
對不起,我誤解了。已添加一個涵蓋該編輯。 – 2011-10-19 12:43:57
謝謝。我已經微調了一下,所以這是對問題的直接回答 - 希望沒關係。 – Simon