如何创建一组int

时间:2009-03-15 17:49:37

标签: iphone objective-c

我正在努力在目标c中创建一组int。

我这样做的方式是javascript:

arr = new Array ( 1, 2, 3, 4, 3, 2, 2 );

我需要使用NSMutableArray,因为需要更新值(这是游戏的平铺图)。

我该怎么做?

4 个答案:

答案 0 :(得分:4)

阵列是否需要更改长度?

如果没有,为什么不使用正常的整数数组:

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]]];
}

答案 1 :(得分:2)

对于NSMutableArray(虽然可能更喜欢C风格的数组,如Alnitak所建议的),你需要做这样的事情:

NSMutableArray *array = [NSMutableArray arrayWithObjects: [NSNumber numberWithInt: 1], [NSNumber numberWithInt:2], nil];

(您可以将任意数量的内容添加到该构造函数中,只需用逗号分隔它们,然后以nil结尾。)

您还可以创建一个空数组([NSMutableArray array]),然后使用[array addObject:[NSNumber numberWithInt:1]]将其填入整数。

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

答案 2 :(得分:0)

NSMutableArray只能包含从NSObject继承的Cocoa对象(即Apple的类和你的类)。

基本上对于NSMutableArray你只需像这样初始化它:

myArray = [[NSMutableArray alloc] init];

然后根据需要添加/删除对象。

祝你好运!

PS:汉克的班级参考是一个很好的起点。

答案 3 :(得分:0)

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

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