Я хочу знать, правильно ли это назначение
id var = 9;
Будет ли переменной var присвоено значение 9, или нам нужно обернуть его в некоторый класс-оболочку, такой как NSNumber?
9 - это целочисленный литерал, который не является объектом. id - указатель на объект. Если вам нужно передать целое число как объект (тип id), вы должны обернуть его внутри NSNumber объекта, например:
id
NSNumber
id var = [NSNumber numberWithInteger: 9];
Возможно, но это не правильно:
warning: initialization makes pointer from integer without a cast
id - это указатель на объект, а не целое число.
id var = @9; тоже работает.@9 эквивалентно [NSNumber numberWithInt:9]
id var = @9;
@9
[NSNumber numberWithInt:9]