2010-02-25 62 views
6

我想测试,如果我的应用程序不能得到的位置坐标发生了什么。是否有可能在模拟器上禁用定位服务,就像在iPod touch具备WiFi关闭?在iPhone模拟器中禁用位置服务?

我还没有我的iPhone开发人员计划证书,所以我无法在我的设备上进行测试。

在此先感谢!

回答

0

作为一种解决方法,您可以尝试通过使用适当的值构造NSError对象来模拟更新位置失败和手动调用相应CLLocationManager委托didFailWithError:方法。

+0

谢谢,我会试试这个! – iYassin 2010-02-28 17:14:52

0

**忽略此。这适用于MapKit。检查下面的评论。

断开计算机与互联网的连接。 How to.

编辑:您可以测试从this site的代码可以在下载here

使用AirPort,你得到的地图。关闭AirPort后,您会看到一个空白的平方视图。

+1

对不起,如果你断开互联网也会显示“1无限循环,库比蒂诺,美国”位置在模拟器 – Warrior 2010-02-25 11:55:44

+0

@战士。检查编辑。顺便说一句。我一直使用这个。 – erastusnjuki 2010-02-25 12:55:31

+0

当使用核心位置的框架,并调用[的LocationManager startUpdatingLocation];方法会给“1无限循环,库比蒂诺,美国”的位置甚至与机场关闭 – Warrior 2010-02-25 13:11:11

0

据我所知,你不能禁用模拟器上的位置服务。

我通常在使用位置服务时使用的方法是根据我的应用程序的需要构建一个简单的包装类NSLocation。

在这个包装中,您可以轻松地假装服务在模拟器中不起作用。例如,它可以有一个“isEnabled”方法,在模拟器上返回false,并且编译器定义如下(#if TARGET_IPHONE_SIMULATOR)

6

您可以禁用模拟器的定位服务;

  1. 通过Xcode中运行你的应用程序,以便模拟器打开
  2. 停止通过Xcode中的应用程序(这应该离开模拟器开)在模拟器窗口
  3. 隐私>定位服务
  4. 打开设置应用。停用定位服务
  5. 再次运行你的应用,位置服务应该被禁用

希望它能帮助!

+1

+1,但当用户最初发布问题时,这不是一个可用的选项。 – Abizern 2013-07-31 09:10:28