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
Iphone 如何创建整数数组_Iphone_Objective C - Fatal编程技术网

Iphone 如何创建整数数组

Iphone 如何创建整数数组,iphone,objective-c,Iphone,Objective C,我正在努力在objective c中创建一个整数数组 我使用javascript的方法是: arr = new Array ( 1, 2, 3, 4, 3, 2, 2 ); 我需要使用一个NSMutableArray,因为值需要更新(这是一个游戏的平铺贴图) 如何执行此操作?阵列是否需要更改长度 如果不是,为什么不使用整数的普通数组: int arr[] = { 1, 2, 3, 4, 3, 2, 2}; 请注意,NSArray(或其子类)本机不包含int类型,您必须创建一个NSNumber

我正在努力在objective c中创建一个整数数组

我使用javascript的方法是:

arr = new Array ( 1, 2, 3, 4, 3, 2, 2 );
我需要使用一个
NSMutableArray
,因为值需要更新(这是一个游戏的平铺贴图)


如何执行此操作?

阵列是否需要更改长度

如果不是,为什么不使用整数的普通数组:

int arr[] = { 1, 2, 3, 4, 3, 2, 2};
请注意,NSArray(或其子类)本机不包含
int
类型,您必须创建一个NSNumber对象

如果确实需要Objective-C样式的数组,请使用以下命令:

int vals[] = { 1, 2, 3, 4, 3, 2, 2};  // you still need this
int n = sizeof(vals) / sizeof(vals[0]);

[NSMutableArray* array = [[NSMutableArray alloc] initWithCapacity:n];
for (int i = 0; i < n; ++i) {
    [array addObject: [NSNumber numberWithInt:vals[i]]];
}
intvals[]={1,2,3,4,3,2,2};//你还需要这个吗
int n=sizeof(vals)/sizeof(vals[0]);
[NSMutableArray*数组=[[NSMutableArray alloc]initWithCapacity:n];
对于(int i=0;i
对于NSMutableArray(尽管正如Alnitak所建议的,C样式的数组可能更可取),您需要执行以下操作:

NSMutableArray *array = [NSMutableArray arrayWithObjects: [NSNumber numberWithInt: 1], [NSNumber numberWithInt:2], nil];
myArray = [[NSMutableArray alloc] init];
(您可以在该构造函数中放入任意数量的内容,只需用逗号分隔,并以
nil
结尾即可)

您还可以创建一个空数组(
[NSMutableArray]
),然后使用
[array addObject:[NSNumber numberwhithint:1]
用整数填充它


如果您需要2D版本,请查看。

NSMutableArray只能包含继承自NSObject的Cocoa对象(即Apple的类和您的类)

基本上,对于NSMutableArray,您只需按如下方式初始化它:

NSMutableArray *array = [NSMutableArray arrayWithObjects: [NSNumber numberWithInt: 1], [NSNumber numberWithInt:2], nil];
myArray = [[NSMutableArray alloc] init];
然后根据需要添加/删除对象

祝你好运


注:Hank的课堂参考是一个很好的起点。

除了Alnitak的答案,我还要补充一点,这个问题也暗示了我在学习编写iPhone编程时肯定会感到的一些困惑。以下是一些关于iPhone编程语言的一般提示

  • 并非所有您编写的代码都是objective-c
  • 您可以(而且通常应该)在编程中使用其他语言,尤其是C语言
  • Alnitak的“普通数组”是一个C数组。它非常适合用原始数据类型存储信息
  • 如果您想在数组中存储对象,可以使用NSArray。这在C中不是一个可用的功能。我们立即知道这一点,因为它以“NS”开头(顺便说一句,这代表下一步)

长度不需要更改…但我需要能够修改数组,可以吗?我如何获得该数组的长度?[arr计数]不起作用您还可以使用NSArray和friends进行长度、边界检查等。数组的长度为sizeof(arr)/sizeof(arr[0])。这是用于查找静态数组长度的标准C机制