2011-10-19 27 views

回答

3

你必須手工完成。

如果列表被刪除,則很簡單。請參閱Relationship Delete Rules。您可以將其設置爲「級聯」,從而相關對象將自動刪除。你仍然會當然需要save上下文所做的任何更改:

級聯

的關係的目的地刪除的對象。 例如,如果您刪除某個部門,則同時啓動該部門中的所有員工。

但是在您的情況下,列表不會被刪除,您的孤立ListingAddress對象必須手動清理。下面是一個涵蓋這個問題了幾個帖子:

Deletions in a many-to-many structure

Core Data: re-setting to-many relationship

+0

我以爲那些都是調用時刪除我的清單 - 我對如下情況感興趣:我將其地址關係設置爲空的NSSet。 – Simon

+0

對不起,我誤解了。已添加一個涵蓋該編輯。 – 2011-10-19 12:43:57

+0

謝謝。我已經微調了一下,所以這是對問題的直接回答 - 希望沒關係。 – Simon

2

有沒有刪除的實體,當你從一個關係中刪除自動的方式,但你可以做相反的事情,你可以刪除實體從刪除它們時的關係。使用ListingAddress實體上的Nullify刪除規則。它仍然只需要一行代碼。你編碼刪除,而不是刪除。除非是多對多的關係,否則這應該適合你的目的。

+0

同意,你需要從刪除實體的角度來看待這個問題。讓核心數據管理關係完整性。 –

0

你可以在willSave方法檢查是否有ListingAddress的任何孤立的孩子,如果有任何,你可以將它設置爲刪除

override func willSave() { 
    super.willSave() 

    if self.deleted { 
     return 
    } 

    if self.listingInverseRelationship == nil { 
     self.managedObjectContext?.deleteObject(self) 
    } 
    } 
相關問題