如何在Xcode上设置文件只能在设备而不是模拟器上构建?

时间:2015-08-26 05:17:27

标签: c++ ios xcode compiler-errors compiler-flags

如何设置文件说.h或.m(确切地说是.cpp)只能在设备上构建,而不是在模拟器上运行时?这适用于Xcode 6.4。这些文件在模拟器上运行时会抛出错误,因为它不支持该体系结构。

修改

是否有编译器标志只能在ARM(设备)上构建文件而不是i86(模拟器)

1 个答案:

答案 0 :(得分:1)

您可以将文件包装在方法中,然后将方法包装在:

#if TARGET_IPHONE_SIMULATOR
-(void)doSomethingUsingSimulatorOnly {
   //do work
}
#endif

with else

#if TARGET_IPHONE_SIMULATOR
    // do stuff when running on Simulator
#elif TARGET_OS_IPHONE
    // do stuff when running on actual device
#endif

你也可以这样做:

if (TARGET_IPHONE_SIMULATOR) {

}

这是你可以尝试的另一个包装器:

#if defined(__cplusplus) || defined(c_plusplus)

#endif

#ifdef __OBJC__

#endif

所以,你可以用不同的方式做到这一点,最后一种方法最容易使用,但每个人的口味都不同。

此外,这是Apple在最新的Metal示例中使用的片段,我认为这对您有用,或许也可以使用它作为示例。这是来自用于金属视频处理的“.mm”文件,它与上面的基本格式相同:

#ifdef __cplusplus


#endif // cplusplus