Core data 如何将UIImageView保存到CoreData数据库

Core data 如何将UIImageView保存到CoreData数据库,core-data,uiimageview,uiimage,nsdata,Core Data,Uiimageview,Uiimage,Nsdata,将UIImageView保存到CoreData数据库的最简单方法是什么。我试过这个: 保存: UIImage *image = imageView.image; NSData *imageData = UIImagePNGRepresentation(image); [newContact setValue:imageData forKey:@"imageViewFinal"]; imageView.image = [matches valueForKey:@"image

UIImageView
保存到CoreData数据库的最简单方法是什么。我试过这个:

保存:

 UIImage *image = imageView.image;
    NSData *imageData = UIImagePNGRepresentation(image);
    [newContact setValue:imageData forKey:@"imageViewFinal"];
  imageView.image = [matches valueForKey:@"imageViewFinal"];
检索:

 UIImage *image = imageView.image;
    NSData *imageData = UIImagePNGRepresentation(image);
    [newContact setValue:imageData forKey:@"imageViewFinal"];
  imageView.image = [matches valueForKey:@"imageViewFinal"];
我还添加了一个名为“imageViewFinal”的
属性,其中包含
二进制数据类型

问题

当我去构建它并点击save按钮时,应用程序崩溃了,有什么问题吗


谢谢你,Seb。

ShermanLo说的没错,崩溃日志显示你已经修改了你的模型,但没有以正确的方式处理新旧商店模型版本之间的冲突

因此,只需在设备/模拟器中删除应用程序,然后重建/运行它


注意:无论何时修改模型,都需要这样做,除非提供处理方法。SO上有许多相关的QA。:)

@ShermanLo说的是对的,崩溃日志显示您已经修改了模型,但没有以正确的方式处理新旧商店模型版本之间的冲突

因此,只需在设备/模拟器中删除应用程序,然后重建/运行它


注意:无论何时修改模型,都需要这样做,除非提供处理方法。SO上有许多相关的QA。:)

你能分享一下坠机日志吗?我认为您应该使用可转换的数据类型将NSImage直接存储到核心数据中。brad(@bradlarson)正如这里已经指出的,崩溃日志:2012-12-23 12:26:21.783 OH&S TUE[24213:c07]未解决的错误域=nscocaerorDomain代码=134100“操作无法完成。(可可错误134100)。”UserInfo=0x777b5e0{metadata={NSPersistenceFrameworkVersion=419;NSStoreModelVersionHashes={SWMS=;};NSStoreModelVersionHashesVersion=3;NSStoreModelVersionIdentifiers=(“”);NSStoreType=SQLite;NSStoreUUID=“1902A7D8-37E9-493F-8586-A76F5642AF79”;“NSAutoVacuumLevel”=2;},原因=用于打开存储的模型与用于创建存储的模型不兼容},{metadata={NSPersistenceFrameworkVersion=419;NSStoreModelVersionHashes={SWMS=;};NSStoreModelVersionHashesVersion=3;NSStoreModelVersionIdentifiers=( "" );NSStoreType=SQLite;您的问题是安装应用程序后更改了模型文件。核心数据不知道如何修改数据库以考虑这些更改。最简单的解决方案就是从模拟器或设备中删除应用程序并重新安装。您能共享崩溃日志吗?我认为您应该使用trans用于将NSImage直接存储到Core data中的可格式化数据类型。brad(@bradlarson)正如这里已经指出的,崩溃日志:2012-12-23 12:26:21.783 OH&S TUE[24213:c07]未解决的错误域=nscocaerorDomain Code=134100“操作无法完成。(可可错误134100)。”UserInfo=0x777b5e0{元数据={NSPersistenceFrameworkVersion=419;NSStoreModelVersionHashes={SWMS=;};NSStoreModelVersionHashesVersion=3;NSStoreModelVersionIdentifiers=(“”);NSStoreType=SQLite;NSStoreUUID=“1902A7D8-37E9-493F-8586-A76F5642AF79”;“NSAutoVacuumLevel”=2;},原因=用于打开存储的模型与用于创建存储的模型不兼容},{metadata={NSPersistenceFrameworkVersion=419;NSStoreModelVersionHashes={SWMS=;};NSStoreModelVersionHashesVersion=3;NSStoreModelVersionIdentifiers=( "" );NSStoreType=SQLite;您的问题是安装应用程序后更改了模型文件。核心数据不知道如何修改数据库以考虑这些更改。最简单的解决方案就是从模拟器或设备中删除应用程序并重新安装。@Seb是的,可以,但最好使用
NSValueTransformer
:)@Seb是的,没关系,但最好使用
NSValueTransformer
:)