这一定很基础,但我想知道如何向数组添加一个整数?
我知道我可以像这样添加字符串:
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];
至少编译器对此不满意,并在没有告知的情况下告诉我我正在进行强制转换。
如有任何解释,我们将不胜感激。
最佳答案
是的,没错。编译器不会像这样接受您的代码。区别如下:
如果你写@"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 个 NSNumber 对象,其值为 1 和 2。
关于iphone - 如何将整数添加到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5837206/