【问题标题】:Saving a UIImage into core data; trouble with NSValueTransformers将 UIImage 保存到核心数据中; NSValueTransformers 的问题
【发布时间】:2011-08-01 19:48:29
【问题描述】:

我正在尝试将从 iphone 相机拍摄的照片保存到核心数据。

我有从相机拍摄的 UIImage。在那之后,我不知道我应该做什么。

每张图片都与一个问题实体相关联。现在问题实体没有图像字段。它与 Image 实体有关系。这样一来,每个问题都可以有许多与之关联的 UIImage。

所以我创建了一个问题实体。现在如何将 UIImage 保存到 Image 实体中的核心数据中,以及如何将它与问题实体连接起来?我需要创建一个图像实体吗?我创建了一个 ImageToDataTransformer,但我不知道是谁调用它——核心数据还是我?在我的 xcdatamodel 中,我有一个 Image 实体。我把 ImageToDataTransformer 放在那里。

我知道我应该将 URL 存储到 UIImage,但我想了解如何存储图像。这对我来说似乎有点令人困惑。

谢谢

Question *question = [NSEntityDescription insertNewObjectForEntityForName:@"Question" inManagedObjectContext:managedObjectContext];
question.date = [NSDate date];

ImageToDataTransformer *transformer = [[ImageToDataTransformer alloc]init];
NSData *imageData = [transformer transformedValue:mm];//mm is an id, but it is the UIImage saved from the camera.
question.image = imageData;

【问题讨论】:

    标签: ios core-data uiimage nsvaluetransformer


    【解决方案1】:

    我建议您创建一个 QuestionImage 实体(或类似名称的实体)并为其提供一个名为 path 的字符串属性。此路径将在磁盘上存储您之前写出图像的位置。将图像放在文档文件夹中将确保它不会被任何缓存转储清除。在您的 QuestionImage 实体(或任何您命名的实体)的实现中,您可以实现 prepareForDeletion 并从磁盘中删除图像,以确保您没有任何未引用的图像。

    在 Core Data 中存储二进制数据可能很麻烦,应尽可能避免。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2021-07-10
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多