我正在制作一个简单的应用程序,用户可以在其中创建多个用 CoreData 保存的对象。
我的问题是,我希望每个对象都有一个链接到它的图像。该图像是由 iphone 相机或用户个人相机胶卷带来的,因此图像将具有相当高的权重(我认为每个图像 > 1MB)。 我看到当图片的权重那么高的时候,比较好的处理方式是把图片保存在documentsDirectory文件夹中,然后把路径保存到coreData。我很容易做到这一点。
但是我如何找到链接到唯一对象的图像的路径名? CoreData 并不能真正处理唯一 ID,并且两个对象可以具有相同的名称...我搜索了 objectID,但效果不是很好,我不确定这是处理这个问题的好方法。
你有什么想法吗?还有其他我完全想念的简单方法吗?提前谢谢你。
最佳答案
使用 coredata 的 objectID 作为标识符
id uri = [self sanitizeFilename:coreDataObject.objectID.URIRepresentation];
[NSString stringWithFormat:@"%@.png", uri];
助手清理文件名:
- (NSString *)sanitizeFileNameString:(NSString *)fileName {
NSCharacterSet* illegalFileNameCharacters = [NSCharacterSet characterSetWithCharactersInString:@"/\\?%*|\"<>"];
return [[fileName componentsSeparatedByCharactersInSet:illegalFileNameCharacters] componentsJoinedByString:@""];
}
关于objective-c - 每个对象的核心数据和唯一的 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875942/