Objective c 将addObject用于NSMutableArray时出现Seg错误

Objective c 将addObject用于NSMutableArray时出现Seg错误,objective-c,nsmutablearray,segmentation-fault,Objective C,Nsmutablearray,Segmentation Fault,我似乎对NSMutableArray有问题 这是我的密码: NSMutableArray *returnArray = [[NSMutableArray alloc] init]; while(condition) { NSInteger temp = someNumber; [returnArray addObject: temp]; } 但是一旦它点击addObject消息,程序seg就会出现故障。有什么建议吗?不能向数组中添加整数之类的基本体,只能添加对象(因此名为a

我似乎对NSMutableArray有问题

这是我的密码:

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

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

}

但是一旦它点击addObject消息,程序seg就会出现故障。有什么建议吗?

不能向数组中添加整数之类的基本体,只能添加对象(因此名为addObject:)。如果要添加数字,必须将其转换为NSNumber或一个相关类。

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

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

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

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

while(condition)
{
    NSInteger temp = someNumber;
    [returnArray addObject:@(temp)];
}
或者,如果编译器不支持该语法:

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

或者使用新的Objective-C语法:
[returnArray addObject:@(temp)]