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