iphone - 使用 Core Data 图像填充 tableView

标签 iphone objective-c ios core-data uiimage

我正在开发一款消息传递应用程序(类似于 WhatsApp),用户可以相互发送文本和图像消息。

我创建了一个 Message 对象,它是 NSManagedObject 的子类,用于存储消息详细信息,例如:
sender_name、timestemp、message_text 和 message_image(用于图像消息)
* 图像的平均大小类似于从 iPhone 相机胶卷库中拍摄的图像的大小。

第一个问题是:
将图像保存到 Core Data 是个好主意,还是将它们保存到文件系统会更好?

问题是,当我在聊天 View 中滚动 tableView 以查看旧消息时,当有图像要从核心数据加载时,滚动性能会变得非常糟糕。

我正在使用 NSFetchedResultsController 来获取消息,而且我一次获取的消息不超过 30 条。我试图通过创建 MessageImage 对象(也是 NSManagedObject 的子类)来存储 UIImage 来提高性能。
Message 对象与 MessageImage 是一对一的关系,我这样做是为了当 fetcher 从 Core Data 加载 30 条消息时,UIImage 本身直到要求。但我的表现仍然很差......

所以第二个问题是:
我可以做些什么来提高滚动性能?

最佳答案

创建图像的缩略图,这些缩略图是它们将在 ScrollView 中缩放到的确切大小。这样您就不必阅读所有高分辨率图像,也不必缩放它们。您可以使用 Core Data 或文件系统存储缩略图。我不认为会有很大的不同。但一定要将高分辨率原件存储在文件系统中。当用户点击图片时,您可以加载它们并显示原始全屏。

关于iphone - 使用 Core Data 图像填充 tableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595159/

相关文章:

iphone - 如何显示 NSDocument 目录中的所有图像

android - 有没有等同于 Android 沉浸式模式的 iOS?

ios - 如何在闭包中访问类的变量?

ios - 资源文件未随 Xcode 5 更新

ios - 无法在 Firebase 中保留 'posts' 的 'users' 引用

iphone - 如何让我的应用程序更加 Shiny ?

objective-c - 更改 UITableView 单元格上的标签?

objective-c - 用于在 ios ipad 应用程序中创建弹出窗口的 UIControl

ios - UITableView 圆角半径无法正常工作

iphone - 初始化方法模式