iphone - 使用 CGFloat 和 float 有什么区别?

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

最佳答案

正如@weichsel 所说,CGFloat 只是 floatdouble 的 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/

相关文章:

objective-c - 在 View Controller 之间进行通信的最佳方式是什么?

ios - 如何在 iOS 中从用户那里获取当前位置

ios - 如何将本地 html 文件加载到 UIWebView

objective-c - ARC 和桥接铸件

objective-c - 使用 block 在 `self` 上保留循环

ios - 删除 UITableView 中单元格前的空白

ios - UIImageView 方面适合和居中

iphone - 在iOS前台应用程序时获取推送通知

objective-c - 什么时候应该在 Objective-C 中使用 nil 和 NULL?

ios - 从后台打开应用程序时不调用 ViewDidAppear