как использовать новый в для цикла - PullRequest
0 голосов
/ 15 сентября 2011

Я бы хотел использовать новый цикл for для цели c, например:

NSMutablearray *array = [[NSMutableArray alloc]] init];

for (int i=0 ; i< 5; i++){
    [array addObject:[[Direction alloc] initWith:random()];
}

Когда я запускаю его, остается только один объект, а затем останавливаюсь с сообщениями.но

NSMutablearray *array = [[NSMutableArray alloc]] init];

   Direction * d=  [[Direction alloc] initWith:random()]
   for (int i=0 ; i< 5; i++){
        [array addObject:d];
     [array addObject:d];
     [array addObject:d];
     [array addObject:d];
     [array addObject:d];

    }

ошибки нет.

Ответы [ 2 ]

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

Это дает ошибку, потому что ваш объект направления не выпущен.Вы выделяете это значение для каждой временной петли. Вы можете сделать это двумя способами

 Direction * d=  [[Direction alloc];

For (loop)
{
d=random() // something like this
}

или

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

0 голосов
/ 15 сентября 2011
NSMutableArray *array = [[[NSMutableArray alloc]] init] autorelease];

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
for (int i=0 ; i< 5; ++i){
    Direction *direction = [[[Direction alloc] initWith:(arc4random()%100)] autorelease];
    [array addObject:direction];
}
[pool drain];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...