iPhone模拟器 - 如何检测应用程序何时在模拟器上运行(这样可以设置测试数据)? [英] iPhone simulator - how to detect when app is running on simulator (so can setup test data)?

查看:211
本文介绍了iPhone模拟器 - 如何检测应用程序何时在模拟器上运行(这样可以设置测试数据)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何示例代码都会告诉我如何在我的iPhone应用程序代码中:

Any sample code that would show me how to, in my iPhone application code:


  1. 如何检测应用程序是否刚刚部署为运行到模拟器(而不是设备)[如果已部署不可用,则只检测应用程序何时在模拟器上运行而不是设备)

  2. 在我的iPhone应用程序代码中,我会将设置我的测试数据的行放在模拟器中 - 这是注意到我希望每次重新编译并推送到模拟器时都能有效地擦除/重新安装测试数据(但是我真的不希望在我在模拟器中使用应用程序期间运行此代码 - 例如应该能够在模拟器中交换应用程序&然后当我在模拟器中再次启动我的应用程序时它不应该运行数据设置代码

任何其他更好的建议如何在模拟器上管理这些测试数据将会很好。这里的背景是我我在谈论测试日历中的数据(例如使用Event Kit),所以当我部署到我的设备时,我不想让应用程序将日历项目放入我的iPhone(抱歉 - 这里只有1个个人iPhone)。

Any other better suggestions re how to cover off managing this test data on the simulator would be good. Background here is that I'm talking about test data in the Calendar (e.g. using Event Kit), so I don't want to have the app putting calendar items into my iPhone when I deploy to my device (sorry - only have 1 personal iPhone here).

推荐答案

我显然会使用这样的东西......

I obviously do use something like this ...

#import <TargetConditionals.h>

#if TARGET_IPHONE_SIMULATOR

// Simulator specific code

#else // TARGET_IPHONE_SIMULATOR

// Device specific code

#endif // TARGET_IPHONE_SIMULATOR

还有你的第二个问题......这样的事情可以帮助你。在你的app delegate中:

And to your second question ... Something like this should help you. In your app delegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  if ( ! [[NSUserDefaults standardUserDefaults] boolForKey:@"initialized"] ) {
    // Setup stuff
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"initialized"];
  }

  ... your code ...
}

这篇关于iPhone模拟器 - 如何检测应用程序何时在模拟器上运行(这样可以设置测试数据)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆