2011-01-19 36 views
1

我將一個NSData(的UIImage)保存在CoreData的屬性中。 同一個實體下還有其他一些屬性。 如何刪除存儲的NSData,但不刪除整個NSManagedObject? 我試圖覆蓋它爲零,但數據庫的大小根本沒有改變,這意味着NSData不會被刪除?刪除存儲在CoreData中的NSData

回答

1

這意味着用於爲該屬性存儲某個值的空間量仍然存在,但這並不意味着您沒有成功刪除該值。寫完價值後你使用了[managedObjectContext save:&error]嗎?如果是這樣,它報告沒有錯誤,那麼價值已經消失。

(有沒有實體店的大小真正提高,當你設置一個屬性?我期望它,當你添加一個實體,但不只是設置一個屬性。)

+0

例如,我在其中有一個實體「Image」和一個屬性「data」。起初,我將NSData直接保存到「數據」中。然後我想刪除我保存的NSData。我用它的方式是,設置image.data = nil。 [managedObjectContext保存:&錯誤]似乎沒有返回任何錯誤。但是當我檢查文件「coredata.SQLlite」的大小時,它仍然是相同的大小。這就是爲什麼我認爲NSData沒有從商店中刪除。隨着實體「圖像」增加(這意味着我保存了另一張圖像),文件「coredata.SQLlite」的大小也增加了。 – Rae 2011-01-19 10:52:43

0

,如果您使用的tableview顯示您的CoreData並在新的VC中編輯當前indexPath,請嘗試YOURCOREDATA.setNilValueForKey(「您的圖像鍵」)。 我只是iOS開發人員的新手,但至少對我來說工作得很好。