我似乎在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]];
}