且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

自动装箱原语

更新时间:2023-09-18 09:25:52

不幸的是,Objective-C不会将原始类型的自动装箱或拆箱到NSNumber.如果这样说,可能会很清楚为什么:Objective-C没有可可基金会框架中的类NSNumber的概念.作为C的一个小超集,Objective-C没有本机"数字对象类型-只是本机C类型.

Unfortunately, Objective-C does not do auto-boxing or unboxing of primitive types to NSNumber. When put that way, it may be clear why: Objective-C has no concept of NSNumber, a class in the Cocoa Foundation framework. As a small superset of C, Objective-C doesn't have a "native" numeric object type--just the native C types.

编辑2012年8月 从Xcode 4.4(和LLVM 4.0)开始,您现在可以使用一些语法糖来包装数字.按照您的示例,这些框式表达式"现在可以工作:

Edit Aug 2012 As of Xcode 4.4 (and LLVM 4.0), you can now use some syntactic sugar to wrap numbers. Following your example, these "boxed expressions" now work:

float foo = 12.5f;
NSNumber* bar;

bar = @(foo);
bar = @12.5f;