2011-01-19 39 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开发人员的新手,但至少对我来说工作得很好。