【发布时间】:2012-07-14 18:21:46
【问题描述】:
可能重复:
How should I store UIImages within my Core Data database?
我决定将图像保存在 Core Data 中,而不是将它们保存在磁盘上。我查看了 Apple 的名为 Locations 的示例代码。但是,该代码针对 iOS 4,我看到另一个 Stack Overflow 帖子,这在 iOS 5 中发生了变化。
我已阅读有关允许外部存储的信息,并且我将图像作为二进制数据保存在我的核心数据模型中。
以下代码从核心数据中检索图像,我在网上找到了这个。但是,我找不到任何关于如何将图像以二进制格式保存到核心数据的教程,也找不到任何关于使用核心数据和 iOS 5 与图像的教程。
NSData *savedBinaryData = entity.smallImage;
self.smallImage.image = [UIImage imageWithData:savedBinaryData];
【问题讨论】:
-
查看 creativ 的回答。就个人而言,我在使用数据库存储图像时看到了可怕的性能。我随后又将图像存储在 Documents 文件夹中并跟踪数据库中的文件名。它看起来不那么优雅,但至少对我来说,它要快得多。如果您使用大量图像执行此操作,您可能希望对这两种方法进行基准测试,但我认为您会发现 Documents 文件夹要快得多。
-
@RobertRyan 我遇到了很多问题,我快疯了。我使用了 GCD,但这仍然没有得到我想要的结果。我的计划是将缩略图存储在 Core data 60 X 60 中,并将完整图像存储在文档中,然后在必要时加载它
-
当然可以,但我个人将图像和缩略图都存储在
Documents中,只是在不同的文件夹中。不确定我是否看到将一些图像存储在Documents和其他图像存储在 Core Data 中的好处。关于您“仍然没有得到......我想要的结果”的评论,我不确定您得到了什么以及为什么不令人满意,所以我无法对此发表评论。 -
@RobertRyan 你在应用商店里有没有使用文档方法的应用,我想看看你从这个方法中得到的性能
-
我在商店中有一个应用程序,它可以很好地处理数据库中的缩略图和存储在闪存中的较大图像。我将缩略图保存为 jpeg(原件也是 jpeg),因此尺寸更小,但最有可能将它们光栅化需要更长的时间。
标签: iphone objective-c ios ios5