Подтвердить что ты не робот

Может ли значение int присваиваться типу id + Objective c

Я хочу знать, правильно ли это назначение

id var = 9;

Будет ли присвоено значение var 9 или нам нужно обернуть некоторый класс-оболочку, такой как NSNumber?

4b9b3361

Ответ 1

Возможно, но это неверно:

warning: initialization makes pointer from integer without a cast

An id - это указатель на объект, а не целое число.

  • Вы намерены использовать объект, доступный по адресу 9? Вам вряд ли удастся это сделать.
  • Вы хотите использовать контейнер id для переноса целого числа? Вместо этого вы должны использовать NSNumber.
  • Ожидаете ли вы, что назначение создаст объект, содержащий 9? Это не работает.

Ответ 2

9 - целочисленный литерал, который не является объектом. id - указатель на объект. Если вам нужно передать целое число как объект (тип id), вы должны обернуть его внутри объекта NSNumber следующим образом:

id var = [NSNumber numberWithInteger: 9];

Ответ 3

id var = @9; работает тоже. @9 эквивалентно [NSNumber numberWithInt:9]