变量就像“变量名称”中的一个对象?

时间:2014-01-19 20:08:26

标签: objective-c

我的问题是标题中的问题。但是,如果它不是一个对象,那么它如何在NSMutableArray中作为对象进行维护?因为NSMutableArray仅用于存储对象,或者我错了? :)

3 个答案:

答案 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继承的基本类型(其他基本类型的示例是charlongfloat等。这些不是Objective-C对象。要将基本类型添加到NSMutableArray或任何其他Objective-C集合,必须将它们包装在对象中。对于int等数字类型,您可以使用NSNumber,如下所示:

int i = 1;
[array addObject:@(i)]; // @(i) is equivalent to [NSNumber numberWithInt:i]