TL:DR - 我有一个 NSData 属性,我在其中保存相机图像,每次访问该属性时,我的磁盘使用量都会增加。
长版:我的应用程序有一个 Photo 类,用于保存从相机拍摄的照片。这是它自动生成的代码:
@interface Photo : NSManagedObject
@property (nonatomic, retain) NSData * original;
@property (nonatomic, retain) NSData * thumbnail;
@property (nonatomic, retain) NSDate * createdAt;
@property (nonatomic, retain) Patient *patient;
@end
两者*original
和*thumbnail
都已Allows External Storage
在 xcdatamodel 文件中设置。每个照片对象在保存后使用大约 4MB 的空间。在代码中的某一时刻,我这样做:
NSData *original = photo.original
由于某种原因,第一次运行该行时,对于每个对象,应用程序的磁盘空间使用量增加了 4MB。就好像出于某种原因,Core Data 正在复制并再次保存包含在photo.original
我不知道为什么会发生这种情况,并且 Instruments 没有帮助,因为核心数据配置文件不适用于设备并且模拟器不支持相机。
有人对问题可能是什么有任何想法吗?