0

[fetchedResultsController objectAtIndexPath:indexPath] を使用してアクセスする UICollectionviewController に表示されるデータ セットがあります。

セグエを使用して、各データが次々に表示されるモーダル scrollview+uipageController に移動します。問題は、View Controller がフェッチ要求を保持しないため、それぞれに個別にアクセスすることです。各ページが関連データをデータ ストアから取得できるように、オブジェクト ID の配列を渡すことを考えています。

私の質問は: fetchresultController が与えられた場合、私が分離している UICollectionviewController で、オブジェクト ID の配列をすばやく作成する方法はありますか、または各 managedObject をループして、それらの ManagedObjectID を取得し、それを配列に入力する必要がありますか? ?

4

1 に答える 1

2

valueForKey管理対象オブジェクトの配列からすべてのオブジェクト ID を取得するために使用できます。

NSArray *objects = [fetchedResultsController fetchedObjects];
NSArray *objectIDs = [objects valueForKey:@"objectID"];

(通常、オブジェクトの配列への送信valueForKey:は、配列の各オブジェクトに適用さvalueForKey:れ、結果の配列を返します。)

注意:オブジェクト ID を使用する場合は、これらが変更される可能性があることに注意してください。たとえば、次のobjectIDドキュメントを参照してください。

重要 レシーバーがまだ保存されていない場合、オブジェクト ID は一時的な値であり、オブジェクトが保存されると変更されます。

于 2012-12-25T07:42:58.723 に答える