我想在目标c中使用new into for循环 例如
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];
}
没有错误。
答案 0 :(得分:0)
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];
答案 1 :(得分:0)
它会出错,因为您的方向对象未被释放。你正在为它分配值evry time loop gose你可以用两种方式做到这一点
Direction * d= [[Direction alloc];
For (loop)
{
d=random() // something like this
}
或
上述人说你可以自动恢复它。