我正在尝试从我的应用程序中确定另一个文件的体系结构。我正在使用我的应用程序包并将其与我的示例中的不同包进行比较。方法已经到位,它们确实将值返回给NSLog,尽管它们不是我期望的值。任何人都可以理解如何解释返回的值?
- (void)whatArch {
NSArray *x86_64_Arch = [[NSBundle mainBundle] executableArchitectures];
NSArray *i386_Arch = [[NSBundle bundleWithPath:@"/path/to/other/bundle"] executableArchitectures];
NSLog(@"%@ %@",[x86_64_Arch componentsJoinedByString:@" "], [i386_Arch componentsJoinedByString:@" "]);
}
我得到的输出是:
2012-07-09 00:00:59.990 whatArch[2200:403] 16777223 7 18
[16777223]是为x86_64包返回的值,[7 18]是(其他)i386包。当我阅读executableArchitecture上的文档时,它显示了一些截然不同的内容:
这些常量描述了bundle的可执行代码可能支持的CPU类型。
enum {
NSBundleExecutableArchitectureI386 = 0x00000007,
NSBundleExecutableArchitecturePPC = 0x00000012,
NSBundleExecutableArchitectureX86_64 = 0x01000007,
NSBundleExecutableArchitecturePPC64 = 0x01000012
};
答案 0 :(得分:2)
NSLog(@"%u 0x%x", 0x01000007, 16777223); // Prints 16777223 0x1000007
NSLog(@"0x%x %u", 18, 0x00000012); // Prints 0x12 18
我将留下7和0x7作为读者的练习。
你知道Christmas (Dec 25) and Halloween (Oct 31) are actually on the same day吗?