Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用for循环创建数组_Objective C_Ios - Fatal编程技术网

Objective c 使用for循环创建数组

Objective c 使用for循环创建数组,objective-c,ios,Objective C,Ios,我正在尝试使用for循环生成整数数组。这是我的密码: int total = 20; for(int x = 0; x < total; x++) { NSArray arr = [NSArray arrayWithObjects: [NSNumber numberWithInt:total]]; } 通过上面的实现,我只得到数组中的一个对象,最后一个。如何使arr包含1到20之间的数字 NSMutableArray *arr = [NSMutablearray arrayWit

我正在尝试使用for循环生成整数数组。这是我的密码:

int total = 20;

for(int x = 0; x < total; x++)
{
   NSArray arr = [NSArray arrayWithObjects: [NSNumber numberWithInt:total]];
}
通过上面的实现,我只得到数组中的一个对象,最后一个。如何使arr包含1到20之间的数字

NSMutableArray *arr = [NSMutablearray arrayWithCapacity:total];
for(int x = 0; x < total; x++)
{
   [arr addObject:[NSNumber numberWithInt:x]];
}
在每个循环中,您使用一个对象创建新数组。在本例中,您只需创建一次数组,然后向其中添加对象

int total = 20;

NSMutableArray *arr = [[NSMutableArray alloc] init];
for(int x = 0; x < total; x++)
{
   [arr addObject:[NSNumber numberWithInt:x]];
}

// release the array when you are done with it.

在每个循环中,您使用一个对象创建新数组。在本例中,您只需创建一次数组,而不只是向其中添加对象。

您应该在循环外部而不是在循环内部初始化数组

int total = 20;

NSMutableArray *arr = [[NSMutableArray alloc] init];
for(int x = 0; x < total; x++)
{
   [arr addObject:[NSNumber numberWithInt:x]];
}

// release the array when you are done with it.
将代码更改为:

int total = 20;
NSMutableArray *arr = [NSMutableArray array];
for(int x = 0; x < total; x++)
   [arr addObject:[NSNumber numberWithInt:x]];

您应该在循环外部而不是在循环内部初始化数组

将代码更改为:

int total = 20;
NSMutableArray *arr = [NSMutableArray array];
for(int x = 0; x < total; x++)
   [arr addObject:[NSNumber numberWithInt:x]];

您每次都在重新创建阵列。将NSArray设置为iVar或在循环外部对其进行初始化。

您每次都在重新创建阵列。将NSArray设置为iVar或在循环外部对其进行初始化。

NSArray是一个不可变的类,这意味着您无法在运行时添加/删除对象,您在这里所做的操作非常奇怪。在循环中创建一个新数组

您可以使用NSMutableArray,但在循环外部使用。通过这种方式,可以在循环外部创建一个引用,并可以向其中添加对象。NSMutableArray是可变的。您可以在运行时更改对象

NSMutableArray* numberArray = [[NSMutableArray alloc] init];

for(int x = 0; x < total; x++)
{
   [numberArray addObject:[NSSnumber numberWithInt:x]];
}
NSArray是一个不可变的类,这意味着您无法在运行时添加/删除对象,您在这里所做的事情非常奇怪。在循环中创建一个新数组

您可以使用NSMutableArray,但在循环外部使用。通过这种方式,可以在循环外部创建一个引用,并可以向其中添加对象。NSMutableArray是可变的。您可以在运行时更改对象

NSMutableArray* numberArray = [[NSMutableArray alloc] init];

for(int x = 0; x < total; x++)
{
   [numberArray addObject:[NSSnumber numberWithInt:x]];
}

每次创建新的NSArray并将其分配给NSArray*arr.+arrayWithObjects时:方法创建一个新数组。NSArray是不可变的,您应该使用NSMutableArray

NSArray创建静态数组,NSMutableArray创建动态数组 数组


每次创建新的NSArray并将其分配给NSArray*arr.+arrayWithObjects时:方法创建一个新数组。NSArray是不可变的,您应该使用NSMutableArray

NSArray创建静态数组,NSMutableArray创建动态数组 数组


你的回答不正确。你应该在数组中存储x,而不是total,否则你将有20个对象,所有对象的值都是20。也许最初的意思是[NSNumber numberWithInt:i],但为了完整起见,YMMV.可能想解释OP做错了什么,以及为什么你的答案解决了这个问题。你的答案不正确。你应该在数组中存储x,而不是total,否则你将有20个对象,所有对象的值都是20。也许最初的意思是[NSNumber numberWithInt:i],但为了完整起见,YMMV.可能想解释OP做错了什么,以及为什么你的答案解决了这个问题。[[NSMutableArray alloc]init];而不是[NSMutableArray alloc]init]。Cheers@Flex_Addicted:您知道您可以编辑来自输入错误的响应=我将更改它,thanx m8!是的,但只有修改了至少6个字符,才能编辑问题。也许我错了。。。无论如何谢谢你。[[NSMutableArray alloc]init];而不是[NSMutableArray alloc]init]。Cheers@Flex_Addicted:您知道您可以编辑来自输入错误的响应=我将更改它,thanx m8!是的,但只有修改了至少6个字符,才能编辑问题。也许我错了。。。无论如何,谢谢你。