167 iphone cocoa-touch objective-c
我倾向于在整个地方使用CGFloat,但我想知道我是否会因此而受到无意义的"性能打击".CGFloat似乎比浮动更"重",对吧?我应该在哪些方面使用CGFloat,真正的区别是什么?
Qui*_*lor 188
正如@weichsel所说,CGFloat只是一个float或两个的typedef double.您可以通过命令双击Xcode中的"CGFloat"来自行查看 - 它将跳转到定义了typedef的CGBase.h头文件中.同样的方法也用于NSInteger和NSUInteger.
引入这些类型是为了更容易编写无需修改即可在32位和64位上运行的代码.但是,如果你需要的只是float你自己的代码中的精确度,你仍然可以使用 - float如果你喜欢 - 它会在一定程度上减少你的内存占用.整数值也是如此.
我建议你投资,使您的应用程序64位清洁和尝试运行它是这样要求的适度的时间,因为大多数Mac现在有64位CPU和Snow Leopard完全64位,包括内核和用户应用程序.Apple的64位Cocoa过渡指南是一个有用的资源.
Tho*_*ing 73
CGFloat是32位系统上的常规浮点数,是64位系统上的双倍浮点数
typedef float CGFloat;// 32-bit
typedef double CGFloat;// 64-bit
Run Code Online (Sandbox Code Playgroud)
所以你不会受到任何性能损失.