для каждого цикла в Objective-C для NSMutableArray - PullRequest
1 голос
/ 02 апреля 2012
NSMutableArray *output = [[NSMutableArray alloc]init]; 

или

NSArray *output = [[NSMutableArray alloc]init];

Я могу установить ключи и значения.Теперь я просто хочу получить доступ к каждому ключу и значению, но я не знаю количество установленных ключей.

В PHP это очень просто, что-то вроде следующего:

foreach ($output as $key => $value)

Как это возможно в Objective-C?

Ответы [ 4 ]

4 голосов
/ 02 апреля 2012

Для NSArray:

for (id item in output) {
    // go nuts
}

Для NSDictionary:

for (id key in output) {
    id value = [output objectForKey:key];
    // go nuts
}

Я использую универсальный тип id, потому что я не знаю, какие типы ключей иценности, с которыми вы работаете.Вы должны использовать конкретные имена классов, если вы их знаете.

2 голосов
/ 02 апреля 2012

Я думаю, что вы путаете NSDictionary с NSArray.

В NSDictionary вы можете установить объект с помощью клавиш типа

NSMutableDictionary *output = [[NSMutableDictionary alloc]init]; 
[yourDictionary setObject:@"yourvalue" forKey:@"yourKey"];

и вы можете получить объект как

[yourDictionary objectForKey:@"yourKey"];

В вашем массиве он просто добавляет объект в индекс.

NSArray * output = [[NSArray alloc] initWithObjects:@"option1",@"option2", nil];

получить объект как

[output objectAtIndex:1];  // 1 is the index number
1 голос
/ 02 апреля 2012

Используйте NSDictionary , который управляет ключами и значениями

0 голосов
/ 02 апреля 2012

В вашем примере возьмите второй массив для объектов-значений и используйте NSDictionary:

NSDictionary *dic = [[NSDictionary alloc] initWithObjects: objectsArray
                                          forKeys: output]; 
...