objective-c - 每个对象的核心数据和唯一的 UIImage

标签 objective-c ios core-data uiimage save

我正在制作一个简单的应用程序,用户可以在其中创建多个用 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/

相关文章:

ios - 为什么 SKSpriteNode 不响应 applyForce 或 applyImpulse?

ios - 将图像转换为 CGBitmapContext

ios - 在 iOS 应用程序及其扩展之间共享 Storyboard

objective-c - 如何在 NSPersistentDocument 和 View Controller 之间共享 NSManagedObjectContext?

xcode - 创建新的基于文档的核心数据项目时出现问题

ios - 将不兼容的类型分配给委托(delegate)

ios - 防止 ios 固定应用刷新

ios - PJSIP 集成在 xcode 7 中运行的正确指导步骤

ios - 在实体 <NSSQLEntity Theaters id=3> 中找不到 coredata keypath nameOfMovie

ios - 如何加载图像并根据它的方向 exif 数据旋转它并使用 UIImageOrientationUp exif 数据保存它