私はメッセージングアプリ(WhatsAppのようなもの)を開発しています。ユーザーはテキストメッセージと画像メッセージを相互に送信できます。
Message
のサブクラスであるオブジェクトを作成して、
sender_name、timestemp、message_text、message_image(画像メッセージの場合)NSManagedObject
などのメッセージの詳細を保存しました。
*画像の平均サイズは、iPhoneカメラロールライブラリから取得した画像のサイズと同じです。
最初の質問は次のとおりです。
画像をCoreDataに保存するのは良い考えですか、それともファイルシステムに保存する方がよいでしょうか。
問題は、チャットビューで、tableViewをスクロールして古いメッセージを表示しているときに、コアデータからロードする画像があると、スクロールのパフォーマンスが非常に悪くなることです。
NSFetchedResultsController
メッセージをフェッチするためにを使用していますが、一度にフェッチするのは30個以下です。を格納するMessageImage
オブジェクト(サブクラスも)を作成して、パフォーマンスを向上させようとしました。オブジェクトはと1対1の関係にあります
。これを行ったので、フェッチャーがCore Dataから30個のメッセージをロードすると、UIImage自体は要求されるまでロードされません。しかし、それでもパフォーマンスが悪くなります...NSManagedObject
UIImage
Message
MessageImage
したがって、2番目の質問は次のとおり
です。スクロールパフォーマンスを向上させるために何ができますか?