【发布时间】:2012-07-21 19:17:07
【问题描述】:
我正在开发一种消息应用程序(类似于 WhatsApp),用户可以相互发送文本和图像消息。
我创建了一个Message 对象,NSManagedObject 的子类,用于存储消息详细信息,例如:
sender_name、timestemp、message_text 和 message_image(用于图像消息)
* 图像的平均大小类似于从 iPhone 相机胶卷库中获取的图像的大小。
第一个问题是:
将图像保存到 Core Data 是个好主意,还是将它们保存到文件系统更好?
问题是,当我在聊天视图中并滚动 tableView 以查看旧消息时,当有图像要从核心数据加载时,滚动性能变得非常糟糕。
我正在使用NSFetchedResultsController 来获取消息,并且一次获取的消息不超过 30 条。我试图通过创建一个MessageImage 对象(也是NSManagedObject 的子类)来存储UIImage 来提高性能。Message 对象与 MessageImage 具有一对一的关系,我这样做是为了当 fetcher 从 Core Data 加载 30 条消息时,UIImage 本身在请求之前不会被加载。但我仍然表现不佳......
所以第二个问题是:
我可以做些什么来提高滚动性能?
【问题讨论】:
标签: iphone objective-c ios core-data uiimage