Я, может казаться, не выясняю, как стать Объективным-c к автоматическому полю мои примитивы.
Я предположил, что смогу сделать следующее
float foo = 12.5f;
NSNumber* bar;
bar = foo;
Однако я нахожу, что привык для более подробного метода
float foo = 12.5f;
NSNumber* bar;
bar = [NSNumber numberWithFloat:foo];
Я делаю его неправильно, или действительно ли это столь хорошо, как это добирается?
К сожалению, 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;