如果处理器类型是Cocoa中的PPC或Intel,最好的方法是什么?(我必须使用碳?)

zek*_*kel 1 hardware macos cocoa macos-carbon objective-c

我需要将它作为一个字符串在程序中的其他地方使用,我不担心编译器设置.

我在CocoaDev上找到了HowToGetHardwareAndNetworkInfo,但是当我想知道的是PPC与英特尔时,它似乎有点激烈.

Ste*_*non 6

如果你的应用程序是胖的(即不在intel上的rosetta下运行),你不需要进行任何调用来获取这些信息,因为不同的代码将运行,具体取决于你所使用的架构.因此,信息在编译时可用:

#if defined __i386__ || defined __x86_64__
NSString *processorType = @"Intel";
#elif defined __ppc__ || defined __ppc64__
NSString *processorType = @"PPC";
#elif defined __arm__
NSString *processorType = @"ARM";
#else
NSString *processorType = @"Unknown Architecture";
#endif
Run Code Online (Sandbox Code Playgroud)

如果你真的想在运行时做一些不正当的理由,你应该能够使用在中sysctlbyname定义的函数<sys/sysctl.h>.

  • 斯蒂芬的回答在运行时给你.这样做,然后将`processorType`写入配置文件. (2认同)