您知道任何API可以告诉我当前操作系统(iOS和MacOSX)的位数吗?我们可以假设MacOSX是64位吗?
答案 0 :(得分:0)
请检查this。这可能会对你有帮助。
您可以在System Profiler中查看正在使用的内核:
Choose About This Mac from the Apple () menu.
Click More Info.
Select Software in the Contents pane.
Look for "64-bit Kernel and Extensions: Yes (or No)" under the System Software Overview heading.
默认情况下,这些Mac在Mac OS X v10.6中使用64位内核。
Mac Pro (Mid 2010)
MacBook Pro (Early 2011)
iMac (21.5-inch and 27-inch, Mid 2011)
默认情况下,这些Mac在Mac OS X Server v10.6中使用64位内核(它们也可以在Mac OS X v10.6中使用64位内核,但默认情况下不使用它)。
Xserve (Early 2008) and later
Mac Pro (Early 2008) and later
Mac mini (Mid 2010)
这些Mac支持64位内核,但默认情况下不使用它。
iMac (Early 2008) and later
MacBook Pro (Early 2008 through Mid 2010)
答案 1 :(得分:0)
通常,您可以假设OS X是基于操作系统版本的64位。 (更具体地说是Cocoa版本。)
更重要的是,你必须问自己你想要完成什么。 一般来说,框架可以保护您不必在大多数时间内考虑这一点,特别是在Objective-C领域。 如果你留在Objective-C的土地,你可以简单地使用宏: CGFLOAT_IS_DOUBLE(来自CGGeometry.h)
NSObjCRuntime.h定义了NSInteger和NSUInteger。 发现宏 LP64 表示64位整数
一般情况下,如果你尝试使用NSInteger,NSUInteger和CGFloat,你就不需要考虑它了。
如果您想更具体地了解核心C类型大小,您需要了解所创建的标准模型。 LP64 ILP64 LLP64 ILP32 LP32 这些表明了期待什么。您实际上并不能假设有一个64位模型。 根据体系结构,您可以使用不同的整数和浮点最大长度。 根据系统的不同,您甚至可以进行类型长度的仿真。 http://www.unix.org/version2/whatsnew/lp64_wp.html 这些是使用 LP64
等宏定义的您可以在CFBase.h中找到这些
但真正的问题仍然是,你想做什么?