2011-12-30 125 views
1

嗨取NSManagedObject我有一個的NSArray(playersList)包含以下NSManagedObjects:具有特定屬性

(
    "<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文檔 – Rog 2011-12-30 11:44:55

回答

0

有幾種方法可以做到這一點。

  • 迭代陣列和只檢查陣列中的每個對象的id_player屬性

    NSIndexSet* indexes = [originalArray indexesOfObjectsPassingTest: ^(id obj, NSUInteger idx, BOOL *stop) 
             { 
              return [obj id_player] == 3; 
             }]; 
    
  • 使用謂詞(見predicate programming guide的詳細信息)

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

創建一個讀取請求,並與所需EntityDescription名填充和NSPredicate對象包含條件id_player == 3,然後進行excuteFetchRequest在其上運行的管理模式這一請求。

+0

這是關於正確的,除了它是託管對象上下文,而不是模型,th在執行請求。 – Caleb 2012-06-06 18:09:56

相關問題