対応する UITableViewController なしで NSFetchedResultsController を使用しようとすると問題が発生します。
アップルのドキュメントによると:
「NSFetchedResultsController は、Core Data フェッチ要求から返された結果を効率的に管理して、UITableView オブジェクトにデータを提供することを目的としています。」
そのため、UITableViewController なしで NSFetchedResultsController を使用することが推奨されるかどうかを最初に調査し、この Stackoverflow の投稿に遭遇して、少なくともいくつかの状況では、それは悪い考えではないと結論付けました。
しかし、対応する UITableViewController が存在しない場合、NSFetchedResultsController の動作が異なるという問題が発生しました。問題は、UITableViewController が存在しない場合、NSFetchedResultsController によって返されるオブジェクトに IndexPaths がないことです。この問題については、stackoverflow の投稿で文書化しました。(これは問題を単純化したものであることに注意してください。状況によっては、オブジェクトに IndexPaths がありますが、UITableViewController なしで IndexPathsを期待することは悪い考えであると信じるのに十分な問題に遭遇しました。)
IndexPaths がなければ、返されたオブジェクトにソート順でアクセスできず、特定のオブジェクトにアクセスできません。したがって、私が探しているのは、NSFetchedResults コントローラーが IndexPaths を持つオブジェクトを返すようにする方法、またはオブジェクトにアクセスする別の方法です。(または、NSFetchedResultsController をまったく使用すべきではないのでしょうか?)
別の方法としては、fetchedObjects を配列に渡してから、その配列を操作するという 1 つの回避策があります。しかし、私の経験では、FRC オブジェクトへの新しいポインターを作成すると、常に問題が発生します。自分のポインターで NSManagedObject を保持しようとするたびに、最終的にバグが発生したと思います。
参考までに、私が作成しようとしているのは、写真のナビゲーション バーに似たナビゲーション バーです。写真アプリケーションに写真を動的に追加できると想像した場合、バーの写真を NSFetchedResultsController で管理するのは理にかなっています。新しい写真を追加すると、バーの最後に動的に追加されます。 UITableView に新しいオブジェクトを動的に追加する方法。
あなたが私を助けることができるかもしれないアイデアをありがとう!
UPDATEこの問題は (暫定的に) -[NSFetchedResultsController fetchedObjects] objectAtIndex:] を使用して解決されます