在目标C中创建整数或NSUIntegers数组

时间:2011-02-21 15:25:35

标签: objective-c

如何在目标c中为整数或NSUIntegers创建数组?

问题是我想要一个我可以经常更改的数组(NSMutableArray?)但是当我尝试添加对象时:someInt或someNSUInteger我得到一个关于“没有强制转换”的警告,当该代码执行应用程序崩溃时。

设置此功能的最快方法是什么?我不知道阵列的大小。它应该是动态的。

3 个答案:

答案 0 :(得分:5)

NSUInteger只是一个typedef-ed unsigned int。 NSMutableArrays只接受对象,我认为这是你的问题。请尝试使用NSNumber

答案 1 :(得分:3)

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

回读

int i = [[array objectsAtIndex:0] intValue];

或连续:

NSMutableArray *array = [NSMutableArray array];
for(int i =0; i<10; i++) {
    NSNumber *number = [NSNumber numberWithInt:i];
    [array addObject: number];
}

使用现代文字语法,您也可以这样做:

NSMutableArray *array = [@[@0, @1, @2] mutableCopy];
int i = [array[0] intValue];

答案 2 :(得分:3)

如果你只想引用一堆纯int常量,并希望避免NSNumber对象的开销而不需要修改你的数组,你可以尝试:

const int SOME_NUMBERS[] = {1,2,3};

稍后引用它,例如:

printf("\nSOME_NUMBERS[1] %i\n",SOME_NUMBERS[1]);