1

我有一组 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 等?似乎应该有更好的方法。

4

1 回答 1

0

图像集实际上不是 Core Data 中的 Array,而是应该由 NSSet 提供。只需将您的对象指针从您的数组复制到一个新的 NSSet 中,您就可以了。

即使图像都有文件名,不要使用那些。更好的方法是动态生成名称,至少供内部使用。当然,如有必要,您可以保留面向用户的名称。对于您的内部名称,请使用基于 GUID 的名称,该名称可以动态生成,或者可能基于当前系统时间。(请务必检查现有文件并相应地调整名称,以防用户更改系统时间。)

于 2012-09-07T04:36:38.353 回答