Автоматическая Упаковка примитивов

Я, может казаться, не выясняю, как стать Объективным-c к автоматическому полю мои примитивы.

Я предположил, что смогу сделать следующее

float foo = 12.5f;
NSNumber* bar;

bar = foo;

Однако я нахожу, что привык для более подробного метода

float foo = 12.5f;
NSNumber* bar;

bar = [NSNumber numberWithFloat:foo];

Я делаю его неправильно, или действительно ли это столь хорошо, как это добирается?

16
задан Jonathan 19 March 2010 в 13:23
поделиться

1 ответ

К сожалению, Objective-C не выполнить автоматическую упаковку или распаковку примитивных типов в NSNumber . В таком случае может быть понятно, почему: Objective-C не имеет понятия NSNumber , класса в структуре Cocoa Foundation. Как небольшая надмножество C, Objective-C не имеет «собственного» числового типа объекта - только собственные типы C.

Редактировать, август 2012 г. Начиная с Xcode 4.4 (и LLVM 4.0), теперь вы можете использовать синтаксический сахар для переноса чисел. Следуя вашему примеру, теперь работают эти "упакованные выражения":

float foo = 12.5f;
NSNumber* bar;

bar = @(foo);
bar = @12.5f;
29
ответ дан 30 November 2019 в 16:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: