簡體   English   中英

為什么在刪除核心數據中的對象之前需要刪除關系?

[英]Why do I need to remove relationships before deleting an object in core data?

我有一個程序,其中使用CoreData來管理永久和臨時數據。

在一個實例中,當用戶按下“取消”時,我通過刪除對象來中止某些數據的添加。 但是,當我單擊下一個視圖時,數據仍然存在,並附加到其父核心數據對象。

    [self.bar removeFoosObject:self.foo];//Why do I need this line?
    [self.foo.managedObjectContext deleteObject:self.foo];

我最終通過手動從子對象的父對象中刪除子對象來解決了這個問題-但這不是核心數據自動處理的嗎? 為什么我需要第一行?

我運行了一些測試代碼,並且Foo肯定被刪除了-它被弄亂的代碼讓我檢查了,它的MOC設置為nil。 內存存在,但它應該非常非常死了...

您必須手動執行此操作,因為刪除規則設置錯誤。 檢查以下Apple文檔中的“關系刪除規則”。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html

或者也可能是父對象和子對象之間的關系未設置為可選。

而且,在刪除對象之后,還應該保存數據庫以使其同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM