你知道任何API可以告诉我当前操作系统(iOS和MacOSX)的弱点吗?我们可以假设MacOSX是64位?是否有API知道当前的iOS/Mac是64位操作系统还是32位操作系统?
回答
一般情况下,您可以假定OS X是基于操作系统版本的64位。 (更具体地说,可可版本)
更重要的是,你必须问自己你想要完成什么。通常情况下,框架可以保护您在大多数情况下不需要考虑这个问题,尤其是在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
发现这些不过真正的问题仍然是,什么是你想怎么办?
请检查this。这可能会帮助你。
你可以看到你正在使用的系统配置文件的内核:
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 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服务器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)
你有任何编程方式吗?谢谢。 – user3599379
你试过这个吗, struct utsname un; INT解析度= UNAME(&un); 如果(RES> = 0){ 的NSLog(@ “%s” 时,un.machine); }。 你应该导入所需的库 即'#进口
我试过了,它可以在Mac上运行,但是在iOS上并没有帮助。 – user3599379
- 1. 什么数据类型是32位操作系统中的16位和64位操作系统中的32位?
- 2. 32位/ 64位操作系统?
- 3. 无论系统是32位还是64位,int都是32位还是64位?
- 4. 如何确定我的操作系统是32位还是64位?
- 5. 如果操作系统是64位
- 6. 如何确定操作系统在Go中是32位还是64位?
- 7. 在64位操作系统上编写程序时,程序是否会运行在32位操作系统上?
- 8. 确定从32位操作系统或64位操作系统C/C++应用
- 9. 无论系统是32位还是64位,uint均为32位?
- 10. 64位操作系统上的32位Java:JVM的数量是否有限制?
- 11. Windows 64位操作系统上的32位或64位Android SDK?
- 12. 64位操作系统安装所需的条件并不是失败的32位Windows操作系统
- 13. 是否可以在64位操作系统中使用32位STS?
- 14. JNA在64位操作系统上具有32位JVM
- 15. 有没有办法检查应用程序的操作系统是32位还是64位?
- 16. 64位操作系统上的32位ActiveX DLL的问题
- 17. Visual Studio 2005,2008是否会受益于64位操作系统?
- 18. .net 1.1是否支持64位操作系统?
- 19. 关于64位和32位的Mac操作系统
- 20. 安装在64位操作系统上的Windows 32位Eclipse?
- 21. 64位操作系统上的32位VC++可再发行?
- 22. VM Virtual Box 64位硬件上的32位操作系统
- 23. 32位应用程序的64位操作系统
- 24. 如何检测Flex中的32位或64位操作系统?
- 25. 对32位系统中的64位字进行操作
- 26. 32位和64位操作系统上的Java版本
- 27. 在64位架构上的32位操作系统
- 28. 对32位和64位操作系统的不同计算
- 29. 32位操作系统上的Apache Hive
- 30. 在32位操作系统和64位操作系统之间,类java.net.InetAddress有什么区别
为了澄清,您是否在寻找可以在您的应用中运行的代码,告诉您设备是64位还是您想确定当前程序的模式?因为32位应用程序可以在64位设备上运行,所以差别很大。 – rmaddy
还有内核模式的问题。现在不太可能,但64位设备可能正在运行一个32位内核,它正在托管/管理64位进程等。 –
我想知道内核位,而不是设备位,而不是程序运行模式。例如,32位Windows可以在64位CPU上运行。但我不在乎CPU的位数,我想知道OS/Kernel的位数。 – user3599379