iPhone:应用程序测试和核心定位

发布于 2024-08-08 23:00:22 字数 331 浏览 7 评论 0 原文

我正在尝试按照描述实施应用程序测试 此处。到目前为止,一切都很好,但我无法测试,例如,使用核心位置测试设备的位置。我已将适当的框架添加到目标,并已启动位置更新,但我不知道如何等待加载位置,测试套件在第二个线程完成之前结束。请帮助我找到一种方法来测试此类事情。

I'm trying to implement Application Tests as described here. So far, so good, but i fail to test, for instance, the location of the device using Core Location. I have added the appropriate Framework to the Target, and have initiated the update of location, but i have no clue of how to wait for the location to be loaded, the test suite just ends before the second thread finish. Please help me to find a way to test this sort of things.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一世旳自豪 2024-08-15 23:00:22

如果您依赖于 CLLocationManager,您可以在 CLLocationManagerDelegate 中实现这两个委托方法:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation

- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error

然后设置 CLLocationmanager 委托并告诉它 >开始更新位置。如果您得到 didUpdateLocationoldLocation 设置为 nil),则意味着您现在有了一个位置,并且可以认为测试成功(确保关闭更新)。如果您收到另一份,则存在位置管理器错误。

如果您依赖 MapKit 并使用 MKMapView 的用户位置更新机制,请查看我对 这个问题并实现观察者部分(observeValueForKeyPath),以便在地图出现时收到通知位置(成功)或实现 MKMapViewDelegate 的 mapViewDidFailLoadingMap 以在出现错误时收到通知。

If you're relying on CLLocationManager you can implement these two delegate methods in CLLocationManagerDelegate:

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation

- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error

Then you set the CLLocationmanager delegate and tell it to startUpdatingLocation. If you get didUpdateLocation (with oldLocation set to nil) it means you now have a location and you can consider the test a success (make sure you turn off updating). If you get the other one there was a location-manager error.

If you're relying on MapKit and are using MKMapView's user-location update mechanism, then take a look at my response to this question and implement the observer section (observeValueForKeyPath) to be notified when the map has a location (success) or implement MKMapViewDelegate's mapViewDidFailLoadingMap to be notified if there was an error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文