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

Я новичок в 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 Ответ

0 голосов
/ 29 сентября 2011

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];
}
...