1 つの画面に 2 つのテーブルがあるアプリを作成しています。左の表はフォルダのリスト、右の表はファイルのリストです。左側の行をタップすると、右側のテーブルにそのフォルダーに属するファイルが表示されます。
ストレージには Core Data を使用しています。フォルダーの選択が変更されると、右側のテーブルの NSFetchedResultsController のフェッチ述語が変更され、新しいフェッチが実行され、テーブル データがリロードされます。次のコード スニペットを使用しました。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list = %@",self.list];
[fetchedResultsController.fetchRequest setPredicate:predicate];
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[table reloadData];
ただし、フェッチ結果は同じままです。フェッチの前後に「述語」を NSLog しましたが、それらは更新された情報で正しかったです。フェッチ結果は、最初のフェッチと同じままです (ビューがロードされたとき)。
Core Data がオブジェクトを取得する方法にはあまり詳しくありませんが (キャッシュ システムはありますか?)、以前に同様のこと (述語の変更、データの再取得、テーブルの更新) を単一のテーブル ビューで行ったことがあり、すべてがうまくいきました。良い。
誰かが私にヒントを与えることができれば、私は非常に感謝しています.
前もって感謝します。