0

我正在做一个有很多视图控制器的大项目。通过这些视图的进展取决于在冗长的表格中填写的数据。

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

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

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

在模拟器上的 Settings.app 中,它是不可编辑的。我也没有看到 ~/Library/Application Support/iPhone Simulator/5.1 中的任何文件中出现文本“iPad Simulator”或“Simulator”。我已经对设置 plist 属性进行了搜索,但没有运气。

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

4

2 回答 2

0

您将能够通过检查型号而不是当前设备的名称来检查它是否正在运行 iPhone 模拟器。应该执行以下操作:

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

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

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

于 2012-10-02T18:18:54.163 回答
0

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

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

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

于 2012-10-02T18:25:25.943 回答