似乎无法有条件地为iPhone / Mac编译

前端之家收集整理的这篇文章主要介绍了似乎无法有条件地为iPhone / Mac编译前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个来源( xcode 3.2.5):

NSLog(@"IPHONE = %d,SIMULATOR = %d,MAC = %d",TARGET_OS_IPHONE,TARGET_IPHONE_SIMULATOR,TARGET_OS_MAC);

我得到了这个结果:

2012-03-30 13:50:06.777 MyApp[36810:207] IPHONE = 1,SIMULATOR = 1,MAC = 1

难怪我的#if语句很混乱!

是什么赋予了?有任何想法吗?

FWIW:On(系留)iPod Touch我得到这个:IPHONE = 1,SIMULATOR = 0,MAC = 1

补充:嗯,我发现我原来的#if问题是由于在几个地方拼错了TARGET_OS_IPHONE为TARGET_OS_PHONE. (好的’复制/粘贴!)

仍然希望找到关于如何设置Apple定义的明确描述.

解决方法

使用TARGET_OS_IPHONE(仅限!)来区分iOS和OSX.

#if TARGET_OS_IPHONE
// iOS
#else
// Mac OS X
#endif

OSX和iOS上的TARGET_OS_MAC将为1;它早于iOS,就TargetConditionals.h而言,iOS被认为是OSX的变种.

猜你在找的Xcode相关文章