【问题标题】:Adding int to NSMutableArray initWithCapacity将 int 添加到 NSMutableArray initWithCapacity
【发布时间】:2013-05-10 16:52:14
【问题描述】:

我正在尝试创建一个由两个整数组成的可变数组

@interface ViewController ()
{
    NSMutableArray *myArray;  
}

以两个对象的容量初始化

- (void)viewDidLoad
{
    [super viewDidLoad];
    myArray = [[NSMutableArray alloc]initWithCapacity:2];
    [self addIntToArray];
}

当我尝试向我的数组添加一个整数时

- (void)addIntToArray
{
    [myArray addObject:3];
}

我收到以下错误,尽管之前遇到过此问题并且现在无法找到解决方法。

Implicit conversion of 'int' to 'id' is disallowed in ARC.

我尝试将我的 int 转换为 id 并收到一条错误消息,指出我不能这样做。我还尝试仅使用 init 初始化数组,但仍然无法将整数添加到数组中。请让我知道如何实现我想要做的功能。谢谢。

【问题讨论】:

    标签: objective-c nsmutablearray int


    【解决方案1】:

    NSArray 只能容纳对象。要存储数值,请考虑将 int 包装到 NSNumber 对象中。

    【讨论】:

    • array = @[ @1.0, @2.0 ] ;
    • 或者如果你不知道数字,你可以使用[ array addObject:@<number> ]@将原始值“框”成一个对象)
    • 或者如果你有int(或其他原始数字类型)类型的变量,使用:[array addObject:@(intVariable)];
    • 感谢您的所有建议,很高兴知道有这么多方法。
    • @aug2uag 仅供参考,所有这些都只是语法糖,我。 e.这些直接映射到[NSNumber numberWithInt:]等。
    【解决方案2】:

    在数组中存储任何 int 使用

    [yourArray addObject:[NSNumber numberWithInt:YOUR_VALUE]];
    

    【讨论】:

    • 或者干脆 [yourArray addObject:@YOUR_VALUE];
    • 您需要使用 NSNumber,正如其他人所说,或者使用带有数字字符串表示形式的 NSString。哪个都无所谓,但是 NSNumber 会更有效率。
    • [NSNumber numberWithInt:YOUR_VALUE] 和@YOUR_VALUE,两者都是一样的。 @YOUR_VALUE 是 [NSNumber numberWithInt:YOUR_VALUE] 的文字表示
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多