我是否有一个编译器指令可用于在定位模拟器而不是我的设备时编译不同的代码行。类似的东西:
# IF SIMULATOR
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
# ELSE
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
# END
修改的
答案 0 :(得分:54)
#if TARGET_IPHONE_SIMULATOR
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
#else
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
#endif
答案 1 :(得分:11)
更新:(已弃用/已过时)这只能使用几年,而且不再有效。 (10多年后)
为了记录,这是Apple在其官方示例代码中使用的另一种方法:
#if TARGET_CPU_ARM
// Only executes on an iPhone or iPod touch device
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
#else
// Only executes on the Simulator
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
#endif
答案 2 :(得分:5)
对于那些寻求现代Swift解决方案的人来说,(新)平台条件return (
<div>
<div dangerouslySetInnerHTML={{ __html: this.state.result }} />
</div>
);
在这里提供了明确的答案。例如:
targetEnvironment
目标环境平台条件功能由SE-0190引入,自 Swift 4.1 起可用。