我想要存储一系列UIImages,以便以后轻松访问。根据我的阅读,我应该将Core Data中的引用和图像保存到磁盘。我在我的实体上创建了一个userImages属性并将其设置为Transformable,我的图像数组称为userImages。
下一步是做这样的事情:
NSFetchRequest * request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Item" inManagedObjectContext:context]];
[request setPredicate:[NSPredicate predicateWithFormat:@"itemId=%@",3]];
item = [[context executeFetchRequest:request error:&error] lastObject];
if (error) {
NSLog(@"error with request");
}
//Update the object
item.userImages = someArrayOfImageReferences;
error = nil;
if (![context save:&error]) {
NSLog(@"error");
}
但是我如何构造someArrayOfImageReferences?我是否必须创建另一个任意图像名称数组,如image1.png,image2.png等?似乎应该有更好的方法。
答案 0 :(得分:0)
图像集实际上不是核心数据中的数组,而应该是NSSet。只需将数组中的对象指针复制到新的NSSet中即可。
即使图像都有文件名,也不要使用它们。更好的方法是动态生成名称,至少是内部使用。当然,如有必要,您可以让用户面对名字。对于您的内部名称,请使用基于GUID的内容,该GUID可以动态生成,也可以根据当前系统时间生成。 (请务必检查现有文件并相应调整名称,以防用户更改系统时间。)