を使用してNSFetchedResultsController
、Core Data 構造から数千の結果を引き出し、それらを に表示していUITableView
ます。キーワードによる検索、作成者による並べ替えなど、述語を使用してフェッチを実行し、更新されたデータを表示するオプションがいくつかあります。
表示する前に順番をランダムにシャッフルしたいと思います。NSArray
完全に機能するメソッドでのカテゴリを作成しましたが、shuffle
そのメソッドを呼び出し[self.fetchedResultsController fetchedObjects]
ても効果はなく、データは変更されません。これは is が原因fetchedObjects
でありreadonly
、コピーを作成する必要があると想定しています。
私はそのコピーを作成しましたが、ヒットした問題は、その新しいアレイをアレイと平和的に共存させることfetchedObjects
です。fetchedObjects
さまざまな詳細ビューに移動してコンテンツを変更できるので、コンテンツの順序が異なっていても、shuffledFetchedObjects
アレイと同期を維持する方法を確認しようとしています。
ここに私の単純な小さなshuffle
カテゴリがあります:
- (NSArray *) shuffle {
NSMutableArray *tmp = [NSMutableArray arrayWithArray: self];
for (int i = [tmp count] - 1; i > 0; i--) [tmp exchangeObjectAtIndex: arc4random() % (i + 1) withObjectAtIndex: i];
return [NSArray arrayWithArray: tmp];
}
これを達成するためにどのようなオプションがありますか?