Невозможно получить NSEnumerator для отображения следующего элемента в моем массиве

Я новичок в Objective-C, и я исследовал это онлайн в течение нескольких недель. Почти все примеры одинаковы на каждом сайте и не дают мне полной ясности, как интегрировать их в мой код для приложения Xcode 4.

Пример, который можно увидеть повсюду:

NSEnumerator* theEnum = [some_array objectEnumerator]; id obj; or id some_object = NULL; while(obj = [theEnum nextObject]) { //do something...

Я думаю, что если бы я лучше понял, что id some_object = NULL;/ id obj; представляет, я мог бы понять это самостоятельно.

В моем коде у меня есть три массива. Я хочу иметь возможность отображать один объект в каждом массиве в поле UILabel каждый раз, когда пользователь нажимает кнопку "Далее", пока все они не будут отображены.

NSArray1 = 1,2,3

NSArray2 = Джон, Джилл, Джош NSArray3 = мальчик, девочка, мальчик

При нажатии следующей кнопки вы увидите 1, Джон и мальчик. В следующий раз вы увидите 2, Джилл и девушка и, наконец, 3, Джош и мальчик.

Ниже приведен базовый пример, а не мой код.

number = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
name = [[NSArray alloc] initWithObjects:@"John",@"Jill",@"Josh", nil];
gender = [[NSArray alloc] initWithObjects:@"boy",@"girl",@"boy", nil];

NSEnumerator *enum = [number objectEnumerator];
id obj; (??What is this?? And how to connect to the statement below??)

while ((obj = [enumNumber nextObject])) {

self.numberItem.text = ??
self.nameItem.text = ??
self.genderItem.text = ??

Спасибо

1 ответ

id obj это просто переменная, содержащая текущую переменную, на которую вы смотрите. В этом коде, так как ваш NSArrayВсе они содержат строку, вы можете использовать NSString *obj вместо.

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

for(unsigned int i = 0; i < number.count; i++) {
    self.numberItem.text = [number objectAtIndex:i];
    self.nameItem.text = [name objectAtIndex:i];
    self.genderItem.text = [gender objectAtIndex:i];
}
Другие вопросы по тегам