我的问题是标题中的问题。但是,如果它不是一个对象,那么它如何在NSMutableArray
中作为对象进行维护?因为NSMutableArray
仅用于存储对象,或者我错了? :)
答案 0 :(得分:2)
原始类型(如int
)必须先包装在对象中,然后才能将其添加到集合类NSMutableArray
中。试试这个:
int nameOfVariable = 42;
NSMutableArray *array = ... // the initialized array
[array addObject:@(nameOfVariable)];
最后一行是现代语法,实质上意味着:
[array addObject:[NSNumber numberWithInt:nameOfVariable]];
稍后,当你需要取回值时,你会这样做:
int someVariable = [array[someIndex] intValue];
答案 1 :(得分:1)
不,它不是一个对象,因此您不能将它放在NSArray
中。您必须将其包装在NSNumber
中,这是一个对象,可以放在NSArray
中。
答案 2 :(得分:0)
int
是从C继承的基本类型(其他基本类型的示例是char
,long
,float
等。这些不是Objective-C对象。要将基本类型添加到NSMutableArray
或任何其他Objective-C集合,必须将它们包装在对象中。对于int
等数字类型,您可以使用NSNumber
,如下所示:
int i = 1;
[array addObject:@(i)]; // @(i) is equivalent to [NSNumber numberWithInt:i]