Как создать запрос в NSMutableArray и распечатать результаты? - PullRequest
0 голосов
/ 24 августа 2011

У меня есть NSMutableArray, который структурирован следующим образом:

{
    {
      AccountNumber:Test1
      Type: Electricity
    }

    {
      AccountNumber:Test2
      Type: Water
    }    

    {
      AccountNumber:Test3
      Type: Water
    }   
}

Как распечатать номер счета в типе воды?

То, что я пробовал, выглядит следующим образом:

- (NSUInteger)indexOfObjectIdenticalTo:(id)data{ return data; }

Но я не понял, как это сделать.

Ответы [ 2 ]

5 голосов
/ 24 августа 2011

Проверить NSPredicate . Это позволит вам по существу определить запрос и применить его к вашему массиву для фильтрации результатов. Это намного быстрее, чем итеративный цикл по массиву, чтобы найти то, что вы ищете. Для вашего примера вам просто нужно сделать следующее:

NSString *type = @"Water";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Type == %@", type];
NSArray *results = [myArray filteredArrayUsingPredicate:predicate];
2 голосов
/ 24 августа 2011

Предполагая, что каждый элемент в массиве является NSDictionary, а все ключи / значения являются NSStrings, вы можете сделать что-то вроде этого:

for (NSDictionary *dict in myArray) {
    if ([[dict objectForKey:@"Type"] isEqualToString:@"Water"]) {
        NSLog(@"Account number %@", [dict objectForKey:@"AccountNumber"]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...