簡體   English   中英

通過避免Zombie對象的新屬性替換核心數據屬性

[英]Replacing a Core Data property by a new one avoiding Zombie objects

我有兩個名為事件和圖像的NSManagedObject。 Event類具有一個名為image的屬性(也具有逆向關系),該屬性由包含Image類的對象的NSSet組成。

從服務器更新事件時,我只想用新的Image NSSet替換舊的Image NSSet,它也可以包含以前存在的Image對象或新的Image對象。 我要做的是:

event.images = [NSSet setWithArray:imagesParser_.imagesArray];

這實現了我的目的,但我擔心的是,仍然屬於舊NSSet的某些Image對象(現在沒有任何Event的任何鏈接)可能會永久保留在數據庫中。 我以為在更新后進行干凈的清理(在DB中查找沒有Event的Image對象並將其從DB中刪除)可以解決此問題,但是我不知道它的效率如何。

非常感謝。

使用coredata刪除對象非常快。 我將親自檢查並刪除附加到事件中的所有對象,然后添加新對象。

您也可以采用這種方法,並且不經常查看並刪除所有圖像,而不會發生任何事件。 這只會在將來在沒有事件的情況下存在圖像(例如您創建需要照片的新型數據)時才成為問題。 確實不是時間或內存密集型。

保持數據庫干凈是一個好主意,否則將來可能會遇到麻煩。 現在,您付出的任何努力通常都會使您將來受益。 如果您不再需要某個對象,則以某種方式將其刪除。

暫無
暫無

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

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