Objective-C цикл через массив - PullRequest
       3

Objective-C цикл через массив

2 голосов
/ 21 октября 2011

У меня есть код, похожий на этот

if (count == 0)
{
    [array1 addObject:@"No Items"];
} 
else
{
    int x;
    for (x = 0;x <= count; x++) 
    {
            [array1 addObject:[itemsArray objectAtIndex:x];
            NSLog(@"%@",array1);
    }
}

itemsArray содержит цифры (0-40). Мой ожидаемый результат:

  • 1
  • 2
  • 3
  • ...

Однако на самом деле это так:

  • 1
  • 1,2
  • 1,2,3
  • 1,2,3,4,5
  • ...

Почему это происходит? Если возможно, я также хотел бы попросить привести пример использования быстрого перечисления для этой ситуации (если оно подходит для этого).

Заранее спасибо.

Ответы [ 2 ]

17 голосов
/ 21 октября 2011

Вы NSLog используете весь массив, а не текущий индекс массива1. То, что вы видите в журнале, - это то, что вы кодировали - чтобы записать то, что вы ожидаете, измените NSLog(@"%@",array1); на NSLog(@"%@",[array1 objectAtIndex:x]);

Для подтверждения добавьте следующее после цикла назначения:

for (NSObject* o in array1)
{
    NSLog(@"%@",o);
}
2 голосов
/ 21 октября 2011

Использование NSLog(@"%@", [array1 objectATIndex:x]);

if (count == 0)
{
    [array1 addObject:@"No Items"];
} 
else
{
    int x;
    for (x = 0;x <= count; x++) 
    {
            [array1 addObject:[itemsArray objectAtIndex:x];
            NSLog(@"%@", [array1 objectATIndex:x]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...