Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa Core Data storedata文件占用太多空间_Cocoa_Core Data_Storage - Fatal编程技术网

Cocoa Core Data storedata文件占用太多空间

Cocoa Core Data storedata文件占用太多空间,cocoa,core-data,storage,Cocoa,Core Data,Storage,我只有一个实体,它有两个属性:一个NSString属性和一个用于图像存储的可转换属性 当我创建六个实体和六个大小约为1.7MB的图像时,storedata文件现在使用NSBinaryStoreType或NSSQLiteStoreType占用19.6MB空间 这是不可接受的,我的核心数据出了问题吗?或者这只是核心数据的自然现象?如何减小storedata文件的大小?非常感谢。将图像存储在外部文件中,然后将其路径作为字符串存储在核心数据中。在Mac OS Lion中,托管对象可以将其属性存储在外部。

我只有一个实体,它有两个属性:一个NSString属性和一个用于图像存储的可转换属性

当我创建六个实体和六个大小约为1.7MB的图像时,storedata文件现在使用NSBinaryStoreType或NSSQLiteStoreType占用19.6MB空间


这是不可接受的,我的核心数据出了问题吗?或者这只是核心数据的自然现象?如何减小storedata文件的大小?非常感谢。

将图像存储在外部文件中,然后将其路径作为字符串存储在核心数据中。

在Mac OS Lion中,托管对象可以将其属性存储在外部。请参见

,但核心数据所占的空间仍然很大。我发现一旦图像被转换成二进制数据,它就会爆炸。@LiFumin你知道为什么吗?有什么解决办法吗?在iPhone照片库中仅需1.5MB的3000 x 2000图像仍需拍摄15MB@hyouuu我还没有验证过这一点,但我猜核心数据会将图像存储为比JPEG更大的TIFF数据。您可以覆盖setter和getter,并将其存储为JPEG数据(请参阅NSBitmapImageRep)。但使用杰夫·凯利的答案更容易。谢谢迈克尔。我已经在使用外部存储器,但它仍然占用了很多空间。事实证明,如果我以0.99的压缩率存储在JPG中,它会大大减小大小。仍然不明白为什么iOS照片库PNG只需要1MB的全尺寸图像…@hyouuu已经4年了,我记不起我的最终解决方案了。很抱歉不过,你可以将杰夫·凯利的答案作为一个解决方案。我对二进制数据使用了“允许外部存储”选项,但在iPhone照片库中仅需要1.5MB的3000 x 2000图像仍然需要15MB——你知道为什么吗?