更改iOS模拟器设备名称

时间:2012-10-02 18:00:58

标签: objective-c xcode cocoa-touch ios-simulator

我正在开发一个包含许多视图控制器的大项目。通过这些观点的进展取决于以冗长形式填写的数据。

以我不那么聪明的方式,我自动填充数据,以便我可以加速到我正在处理的当前功能。我正在使用像这样的条件......

if(
   [[[UIDevice currentDevice] name] hasPrefix:@"Rob"] ||
   [[[UIDevice currentDevice] name] hasPrefix:@"iPad Simulator"]
   )
{
    self.label.text = @"xxx";
    ...
}

...这很有效,因为我可以在iPad和模拟器上测试它们。现在客户也希望能够在他们的模拟器上进行测试,所以我不能离开自动填充。我认为最简单的解决方案就是更改模拟器的名称。

在模拟器上的Settings.app中,它不可编辑。我还没有看到文本“iPad模拟器”或“模拟器”显示在〜/ Library / Application Support / iPhone Simulator / 5.1中的任何文件中。我已经完成了设置plist属性的搜索,但没有运气。

有谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以通过检查模型而不是当前设备的名称来检查它是否正在运行iPhone模拟器。类似下面的事情应该做:

if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"]) {
    // Run for iPhone simulator
}

注意:当您使用iPad模拟器时,您需要使用“iPad模拟器”

另外,使用hasPrefix的当前代码根本不安全。 Rob是一个通用名称,所以如果其他人有一个设备,其设备名称以Rob开头,那么它将公开您的测试信息。我强烈建议你只针对模拟器的自动完成目标

答案 1 :(得分:0)

只需创建一个新类并将加载逻辑放在那里。

之后,从您的委托didFinishLaunchingWithOptions方法中调用此类。

有了这个,您可以随时或更好地评论上述呼叫,检查数据是否已加载并忽略它。