如何向数组添加整数?

时间:2011-04-29 20:43:43

标签: iphone objective-c cocoa-touch

这一定是非常基本的,但我想知道如何在数组中添加整数?

我知道我可以添加这样的字符串:

NSMutableArray *trArray = [[NSMutableArray alloc] init];
[trArray addObject:@"0"];
[trArray addObject:@"1"];
[trArray addObject:@"2"];
[trArray addObject:@"3"];

但我想我不能简单地添加这样的整数:

NSMutableArray *trArray = [[NSMutableArray alloc] init];
[trArray addObject:0];
[trArray addObject:1];
[trArray addObject:2];
[trArray addObject:3];

至少编译器对此并不满意并告诉我,我在没有告诉它的情况下正在进行演员表。

非常感谢任何解释。

3 个答案:

答案 0 :(得分:27)

是的,这是对的。编译器不会接受这样的代码。区别在于:

如果你写@"a String",它就像你创建一个字符串并自动释放它一样。因此,您可以使用@"a String"创建对象。

但是数组只能存储对象(更精确:指向对象的指针)。所以你必须创建存储整数的对象。

NSNumber *anumber = [NSNumber numberWithInteger:4];
[yourArray addObject:anumber];

要再次检索整数,请执行此操作

NSNumber anumber = [yourArray objectAtIndex:6];
int yourInteger = [anumber intValue];

我希望我的回答可以帮助您理解为什么它不起作用。您不能将整数强制转换为指针。这是你从Xcode得到的警告。

修改

现在也可以编写以下内容

[yourArray addObject:@3];

这是创建NSNumber的快捷方式。数组

的语法相同
@[@1, @2];

将为您提供一个NSArray,其中包含2个值为1和2的NSNumber对象。

答案 1 :(得分:7)

我认为你必须使用NSNumbers,尝试将这些对象添加到你的数组中:[NSNumber numberWithInteger:myInt];

NSMutableArray *trArray = [[NSMutableArray alloc] init];     
NSNumber *yourNumber = [[NSNumber alloc] numberWithInt:5];

[trArray addObject: yourNumber];

答案 2 :(得分:4)

如果你想使用字符串,你也可以使用它:

NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSString stringWithFormat:@"%d",1]];
[[array objectAtIndex:0] intValue];