【问题标题】:How to save a UIImageView to a CoreData Database如何将 UIImageView 保存到 CoreData 数据库
【发布时间】:2012-12-09 17:02:48
【问题描述】:

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

保存:

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

检索:

  imageView.image = [matches valueForKey:@"imageViewFinal"];

并且我添加了一个名为“imageViewFinal”的Attribute,其类型为Binary Data

问题

当我去构建它并单击保存按钮时,应用程序崩溃了,这是什么问题?

谢谢,Seb。

【问题讨论】:

  • 你能分享崩溃日志吗?我认为您应该使用可转换数据类型将 NSImage 直接存储到 Core Data 中。
  • brad (@bradlarson) 正如这里已经指出的那样stackoverflow.com/questions/3908910/…
  • 崩溃日志:2012-12-23 12:26:21.783 OH&S TUE[24213:c07] 未解决的错误 Error Domain=NSCocoaErrorDomain Code=134100 “操作无法完成。(Cocoa 错误 134100 .)" UserInfo=0x777b5e0 {元数据={ NSPersistenceFrameworkVersion = 419; NSStoreModelVersionHashes = { SWMS = ; }; NSStoreModelVersionHashesVersion = 3; NSStoreModelVersionIdentifiers = ( "" ); NSStoreType = SQLite; NSStoreUUID = "1902A7D8-37E9-493F-8586-A76F5642AF79"; "_NSAutoVacuumLevel" = 2;
  • }, reason=开店的模型和开店的模型不兼容}, { metadata = { NSPersistenceFrameworkVersion = 419; NSStoreModelVersionHashes = { SWMS = ; }; NSStoreModelVersionHashesVersion = 3; NSStoreModelVersionIdentifiers = ( "" ); NSStoreType = SQLite;
  • 您的问题是您在安装应用程序后更改了模型文件。然后,Core Data 不知道如何修改数据库以将更改考虑在内。最简单的解决方案是从模拟器或设备中删除应用并重新安装。

标签: core-data uiimageview uiimage nsdata


【解决方案1】:

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

所以只需在您的设备/模拟器中删除您的应用,然后重新构建/运行它。

注意:每当您修改模型时,除非您提供处理方法,否则您需要这样做。 SO上有很多相关的QA。 :)

【讨论】:

  • @Seb 是的,没关系,但最好使用NSValueTransformer。 :)
猜你喜欢
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 2015-07-01
  • 2019-10-14
  • 2019-10-29
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多