将addObject用于NSMutableArray时出现Seg Fault

时间:2012-11-15 03:45:19

标签: objective-c nsmutablearray segmentation-fault

我似乎遇到了NSMutableArray的问题。

这是我的代码:

NSMutableArray *returnArray = [[NSMutableArray alloc] init];

while(condition) {
    NSInteger temp = someNumber;
    [returnArray addObject: temp];

}

但是一旦命中addObject消息,程序就会出错。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您不能将整数这样的基元添加到数组中,只能添加对象(因此名称为addObject :)。如果要添加数字,则必须将它们转换为NSNumber或其中一个相关类。

答案 1 :(得分:0)

您只能将对象添加到数组,而NSInteger不是数组。

NSMutableArray *returnArray = [[NSMutableArray alloc] init];

while(condition) {
    [returnArray addObject: [NSNumber numberWithInt: someNumber]];
}

答案 2 :(得分:0)

您需要将NSInteger等原语包装到NSNumber类中。您可以执行以下操作:

while(condition)
{
    NSInteger temp = someNumber;
    [returnArray addObject:@(temp)];
}

或者如果您的编译器不支持该语法:

while(condition)
{
    NSInteger temp = someNumber;
    [returnArray addObject:[NSNumber numberWithInteger:temp]];
}