我倾向于到处使用 CGFloat,但我想知道我是否会因此而受到毫无意义的“性能打击”。CGFloat 似乎比 float 更“重”,对吧?我应该在什么时候使用 CGFloat,真正的区别是什么?
正如@weichsel 所说,CGFloat 只是floator的 typedef double。您可以通过 Command-双击 Xcode 中的“CGFloat”来亲自查看——它将跳转到定义 typedef 的 CGBase.h 标头。NSInteger 和 NSUInteger 也使用相同的方法。
float
double
引入这些类型是为了更容易编写无需修改即可在 32 位和 64 位上运行的代码。但是,如果您需要的只是float您自己代码中的精度,那么您仍然可以使用float“如果您喜欢”——这将在一定程度上减少您的内存占用。整数值也是如此。
我建议你花一些时间让你的应用程序 64 位干净并尝试运行它,因为大多数 Mac 现在都有 64 位 CPU,而 Snow Leopard 是完全 64 位的,包括内核和用户应用程序。Apple 的64 位 Cocoa 转换指南是一个有用的资源。