使用TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE宏区分模拟器和设备

#if TARGET_IPHONE_SIMULATOR  
        NSLog(@"run on simulator");  
    #else  
        NSLog(@"run on device");  
    #endif

注意不要用#ifdef TARGET_IPHONE_SIMULATOR, 因为在device上, TARGET_IPHONE_SIMULATOR被定义为0。、

TARGET_OS_IPHONE的用法也一样。

时间: 2024-11-05 20:35:19

使用TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE宏区分模拟器和设备的相关文章

用宏区分操作系统和编译器

编译器GCC ifdef GNUC if GNUC >= 3 // GCC3.0以上 Visual C++ ifdef _MSC_VER(非VC编译器很多地方也有定义) if _MSC_VER >=1000 // VC++4.0以上 if _MSC_VER >=1100 // VC++5.0以上 if _MSC_VER >=1200 // VC++6.0以上 if _MSC_VER >=1300 // VC2003以上 if _MSC_VER >=1400 // VC2

iOS区分不同类型设备,加载不同的Window

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil]; } else{ self.viewController = [[ViewController alloc] initWithNibName: @"ViewC

【IOS】IOS开发问题解决方法索引(四)

1       IOSNSTimer线程无法在委托方法之外停止 NSTimer无法在线程的委托方法之外停止. 2       在IOS4.3中添加AdSupport.framework会引起dyld 'dyld_fatal_error 将库引用参数设置为可选即可解决. 3       Failed to get the task for process xxx 证书问题,project与target的调试证书都必须是开发者证书,ADHOC的证书会出现此问题. 4       IOS NSInvo

CocoaLumberjack调试的简单使用

主要用于Xcode输出台的彩色化 一.首先安装xCode扩展插件XcodeColors 1.下载地址:https://github.com/robbiehanson/XcodeColors 2.下载完成后,打开XcodeColors项目,直接编译,不需要运行.它会在你的电脑中安装插XcodeColors.xcplugin.具体路径在:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin

一个有趣的现象(苹果的bug Or 坑?),关于区分真机和模拟器的预编译宏

TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是苹果的两个宏定义, 在真机sdk中位于ios->usr/include/targetconditionals.h中, 在模拟器sdk中位于simulator->usr/include/targetconditionals.h中 (笔者此时使用的xcode版本为5.1,sdk版本是7.1) 仔细看其模拟器sdk中的定义: #define TARGET_OS_IPHONE            1 #define

IOS开发之----常用宏定义和讲解

__FILE__ 当前文件所在目录 __DATE__ “替代文字”是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy”(例如:“Mar 19 2006”).如果日期小于10日,就在日的前面放一个空格符.NSLog(@"_DATE_=%s",__DATE__); __FUNCTION__ 当前函数名称 __LINE__ 当前语句在源文件中的行数 __TIME__                此字符串字面值包含编译时间,格式为“hh:mm:ss”(范例:“08:00:59

TARGET_IPHONE_SIMULATOR

在项目中需要用到硬件的设备,所以并非整个项目都可以用模拟器来开发调试,仅仅UI部分可以这么做.因为项目不大,所以一直没有运行过模拟器,不过要调试一个iPhone5屏幕上的UI细节,所以需要编译出模拟器来. 为了区分模拟器和实际运行的场景,选择了TARGET_IPHONE_SIMULATOR这个宏来区分,一开始的用法是: #ifdef TARGET_IPHONE_SIMULATOR XXXXX #else XXXXX #endif 运行起来发现实际手机上居然也在跑模拟器段的代码,实际查看了一下TA

工程中常用的几种宏判断

注: #if和#ifdef的区别: #if 后面接的是宏. #ifdef 是判断有没有定义这个宏. 1.如果是Debug状态 #if DEBUG #else #endif 2.如果不是在模拟器上运行 #if !TARGET_IPHONE_SIMULATOR #endif 3. #if TARGET_IPHONE_SIMULATOR #elif TARGET_OS_IPHONE #endif 4.如果手机系统版本小雨5.0 #if __IPHONE_OS_VERSION_MIN_REQUIRED

Xcode6 模拟器路径

Xcode6发布后,出现了很多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有很多文章,这里要介绍的是一些不太容易发现的,但很重要的小地方.         1.Xcode6模拟器路径的变更          在Xcode5和之前的版本中,Xcode的模拟器路径为:/Users/username/Library/Application Support/iPhone  Simulator.在该文件夹下,可以查看到所有的模拟器版本,点进去后,可查看应用沙盒情况.