iphone - 如何将整数添加到数组?

标签 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];

至少编译器对此不满意,并在没有告知的情况下告诉我我正在进行强制转换。

如有任何解释,我们将不胜感激。

最佳答案

是的,没错。编译器不会像这样接受您的代码。区别如下:

如果你写@"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/

相关文章:

ios - `UIImage` 类的指定初始化程序是什么?

ios - 使用自动布局约束优先级来更改不同设备上 View 的大小

iphone - UINavigationController 不显示 Root View Controller

iphone - NSNumber 未正确转换并被解释为 NSCFString?

iphone - 你如何管理和使用 "Many to many"核心数据关系?

ios - 在 UITableView 中插入项目会导致应用程序崩溃

ios - 从屏幕中心展开一个圆圈

objective-c - UIWebView canGoBack 和 canGoForward 总是返回 NO

ios - 如何以编程方式获取有关 iphone 的设备数据提供程序(如 Verizon/AT&T)的详细信息?

iphone - View 消失后如何在 UITableView 中保留复选标记