2011-12-30 13 views
1

でNSManagedObjectを取得:こんにちは、私は、次のNSManagedObjectsを含むNSArrayの(playersList)を持っている特定のプロパティ

(
    "<NSManagedObject: 0x6b75980> (entity: Players; id: 0x6b749d0 <x-coredata://463316AB-BCF5-4257-AE5B-26E3AAB0DAE1/Players/p1> ; data: { \"id_player\" = 2;\n name = 7777;\n})", 
    "<NSManagedObject: 0x6b759e0> (entity: Players; id: 0x6b749e0 <x-coredata://463316AB-BCF5-4257-AE5B-26E3AAB0DAE1/Players/p2> ; data: { \"id_player\" = 3;\n name = \"hcp 5\";\n})", 
    "<NSManagedObject: 0x6b756d0> (entity: Players; id: 0x6b749c0 <x-coredata://463316AB-BCF5-4257-AE5B-26E3AAB0DAE1/Players/p3> ; data: {\"id_player\" = 4;\n name = 1;\n})" 
) 

は、どのように私はそれがid_playerの== 3 'でオブジェクトを返すように照会することができますか?

+1

NSPredicate documentation – Rog

答えて

0

いくつかの方法があります。

  • 反復配列だけが

    NSIndexSet* indexes = [originalArray indexesOfObjectsPassingTest: ^(id obj, NSUInteger idx, BOOL *stop) 
             { 
              return [obj id_player] == 3; 
             }]; 
    
  • 述語を使用する(詳細についてpredicate programming guide参照)アレイ内の各オブジェクトのid_playerプロパティをチェック

    NSPredicate* predicate = [NSPredicate predicateWithFormat: @"id_player == %d", 3]; 
    NSArray* results = [originalArray filteredArrayUsingPRedicate: predicate]; 
    
1

管理モデルに対して、その要求を実行するためにexcuteFetchRequestを行い、その後、フェッチ要求を作成し、希望EntityDescription名前でそれを記入し、条件id_player == 3が含まれていNSPredicateオブジェクト。

+0

これは、モデルではなく管理対象オブジェクトのコンテキストであることを除いてほぼ同じですatはリクエストを実行します。 – Caleb