よし、これが状況だ。テキストと画像 (かなり大きな画像) を含むドキュメントを保存およびロードできるプログラムを作成しています。バックエンドについては、 CoreData とUIManagedDocument
独自のサブクラス of (これを と呼びましょうNotificationDocument
) を使用してNSManagedDocument
います。
現在、それぞれNotificationDocument
に、保存された保存スロットと保存された名前を表す 2 つの属性があります。ドキュメントのリストとそれらが保存されているスロットを表示するTableViewがあります(例:「保存スロット1:テンプレートのクリーニング」)。
ただし、このテーブルビューにデータを入力するには永遠にかかります。私がやっていることはviewDidLoadにあります:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"NotificationDocument"];
NSArray *notifications = [self.database.managedObjectContext executeFetchRequest:fetchRequest error:nil];
すべての notificationDocuments を完全に取得してメモリに移動しているため、プログラムの実行が非常に遅いと疑うのは当然のことです。すべての notificationDocuments が本当に必要ないことを考えると、これを行うためのより良い (より高速な) 方法はありますか?それらの保存スロットと保存名属性のみが必要です。これを達成するための最良の方法は何ですか?
保存スロットをそれらに保存された名前にマッピングするマップ エンティティを CoreData に保存することも考えました。ただし、完全に別のエンティティを保存せずにこれを行う良い方法があれば、それが望ましいでしょう。ありがとう。