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