Objective-C, NSArray from executableArchitectures
===

I'm trying to determine the architecture of another file from my application. I'm using my application bundle and comparing it to a different bundle in my example. The methods are in place and they do return values to NSLog, although they are not the values I was expecting. Can anyone make some sense as to how to interpret the returned values? 

    - (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:@" "]);

    }

The output I get is:

    2012-07-09 00:00:59.990 whatArch[2200:403] 16777223 7 18

The [16777223] is the value that returns for the x86_64 bundle, and [7 18] for the (other) i386 bundle. When I read the documentation on [executableArchitecture][1] it shows something much different:

[Mach-O Architecture][2]

These constants describe the CPU types that a bundle’s executable code may support.
   

    enum {
       NSBundleExecutableArchitectureI386      = 0x00000007,
       NSBundleExecutableArchitecturePPC       = 0x00000012,
       NSBundleExecutableArchitectureX86_64    = 0x01000007,
       NSBundleExecutableArchitecturePPC64     = 0x01000012
    };


  [1]: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html#//apple_ref/doc/uid/20000214-SW32
  [2]: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Mach_O_Architecture