Можно ли включить NSInteger в NSNumber?

Быстрый вопрос: возможно ли включить NSInteger в объект NSNumber? Мне нужно преобразовать тег объекта UIImageView в объект NSNumber, потому что мне нужно передать его как аргумент функции.

Ответ 1

Вы не можете использовать его, потому что NSInteger не является объектом, а просто псевдонимом для встроенного типа. Вы всегда можете создать новый объект NSNumber из NSInteger, например:

NSNumber *myNum = @(myNsIntValue);

или в предыдущей версии компилятора, используйте

NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];

Ответ 2

поскольку Apple LLVM Compiler 4.0, существует более простой способ создания объекта NSNumber:

NSNumber *x = @1234; 
NSNumber *y = @(anIntegerVariable);

Ответ 3

Это более правильный ответ и не приведет к непредвиденной ошибке.

NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];

Потому что док сказал:

"numberWithInteger: Создает и возвращает объект NSNumber, содержащий заданное значение, рассматривая его как NSInteger. "

"numberWithInt: Создает и возвращает объект NSNumber, содержащий заданное значение, рассматривая его как подписанный int. "