小编典典

使用 CGFloat 和 float 有什么区别?

all

我倾向于到处使用 CGFloat,但我想知道我是否会因此而受到毫无意义的“性能打击”。CGFloat 似乎比 float
更“重”,对吧?我应该在什么时候使用 CGFloat,真正的区别是什么?


阅读 198

收藏
2022-08-21

共1个答案

小编典典

正如@weichsel 所说,CGFloat 只是floator的 typedef double。您可以通过 Command-双击 Xcode
中的“CGFloat”来亲自查看——它将跳转到定义 typedef 的 CGBase.h 标头。NSInteger 和 NSUInteger
也使用相同的方法。

引入这些类型是为了更容易编写无需修改即可在 32 位和 64
位上运行的代码。但是,如果您需要的只是float您自己代码中的精度,那么您仍然可以使用float“如果您喜欢”——这将在一定程度上减少您的内存占用。整数值也是如此。

我建议你花一些时间让你的应用程序 64 位干净并尝试运行它,因为大多数 Mac 现在都有 64 位 CPU,而 Snow Leopard 是完全 64
位的,包括内核和用户应用程序。Apple 的64 位 Cocoa
转换指南
是一个有用的资源。

2022-08-21