• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 将 UIImage 保存到 Core Data 时出错

[复制链接]
菜鸟教程小白 发表于 2022-12-13 12:53:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我无法将照片保存到核心数据中。我正在尝试将其保存为实体中设置为“可转换”的属性。我已经看到关于 SO 的各种讨论,并且共识似乎是在 iOS5 及更高版本中,我不需要使用编码器,因为 UIImage 现在符合 NSCoding。尝试保存 Core Data 时出现错误。请看下面我用来保存照片的代码......

- (void) imagePickerControllerUIImagePickerController *)picker didFinishPickingMediaWithInfoNSDictionary *)info {

    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    UIImage *originalImage, *editedImage, *imageToSave;

    // Handle a still image capture
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {

        editedImage = (UIImage *) [info objectForKey:UIImagePickerControllerEditedImage];
        originalImage = (UIImage *) [info objectForKey:UIImagePickerControllerOriginalImage];

        if (editedImage) {
            imageToSave = editedImage;
        } else {
            imageToSave = originalImage;
        }

        // Convert image to Data for entry into Core Data
        NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(imageToSave)];

        // Add image to Core Data
        myEntity.attribute = imageData;

        NSError *error = nil;
        if (![managedObjectContext save:&error]) {
            NSLog(@"Error when saving core data");
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }

    }

    [[picker parentViewController] dismissModalViewControllerAnimated: YES];
    [picker release];
}



Best Answer-推荐答案


我同意约瑟夫的回答。但是,如果您的图像是(礼貌 - Marcus S. Zarra's answer here),请查看 Apple 对存储图像的建议:

  • 小于 100K;作为二进制属性存储在主表中
  • 小于1M;作为二进制属性存储在辅助表中以避免过度获取
  • 大于1M;存储在磁盘上并将其文件路径存储在 Core Data 表中。

从您的代码中,我看到您正在尝试将从相机拍摄的图像保存到核心数据。我们知道现在从手机/iPad 相机拍摄的图像大约为 2.5 Mbs。因此,您很可能会遇到性能问题。因此,我建议您将图像存储在文档目录中,并将其路径保存为 NSString 在您的实体中。这将是一种更有效的方式。

关于iphone - 将 UIImage 保存到 Core Data 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028440/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap