我想知道这项任务是否正确
id var = 9;
var将被赋值为9还是我们必须包装在一些包装类中,如NSNumber?
答案 0 :(得分:42)
9是整数文字,不是对象。 id
是指向对象的指针。如果需要将整数作为对象传递(类型id
),则必须将其包含在NSNumber
对象中,如下所示:
id var = [NSNumber numberWithInteger: 9];
答案 1 :(得分:12)
有可能,但不正确:
warning: initialization makes pointer from integer without a cast
id
是指向对象的指针,而不是整数。
id
容器来携带整数?您应该使用NSNumber
代替。答案 2 :(得分:2)
id var = @9;
也有效。 @9
相当于[NSNumber numberWithInt:9]