【问题标题】:Getting user's location once, and only once获取用户的位置一次,而且只有一次
【发布时间】:2014-06-17 01:30:57
【问题描述】:

我的应用需要知道用户的粗略位置,以及他们所在州/省的分辨率。这样我们就知道在一个简单的税收计算器中默认税率应该是多少。在那之后他们仍然可以选择它,但尝试做对总是好的。

有没有一种简单的方法来获得这种解决方案而无需所有繁琐的回调等?我不需要更新,一个粗略的位置就可以了,一个旧的位置可能就很好了。

【问题讨论】:

  • 有些人离开了他们出生的州/省。
  • 在这种情况下,他们可以从弹出窗口中选择新的。但是 100 次中有 99 次,我们的应用程序将在用户的“家庭位置”中使用,并且默认使用正确的位置是一个好主意。

标签: ios7 core-location


【解决方案1】:

没有简单的方法可以获取当前位置。
这意味着您需要初始化CLLocationManager 对象,调用startUpdatingLocation 方法并在委托方法中检索结果。
使用一行代码不可能同步获取当前位置,因为检索位置信息可能需要很长时间(例如打开 GPS 传感器等)。这就是您通过异步委托方法获取信息的原因。

【讨论】:

  • 呃,好的。但是系统是否不会存储最后一个已知的良好位置以预飞行 GPS 呢?看来这对我的目的来说是完美的。
  • @MauryMarkowitz 我在写答案之前已经尝试过了,如果之前不调用startUpdatingLocation,CLLocationManager.location 对象返回nil 对象。不幸的是,它不存储最后的结果。我的意思是其他应用程序先前获得位置并且对于新应用程序返回nil的情况。尽管如果您的应用程序之前询问过位置,它会存储最后一个结果。 Here 是详细信息。
  • 谢谢 Visput,太糟糕了:-)
【解决方案2】:

是唯一的办法,

但要获得单个用户位置 在 locationManager:didUpdateLocations: 方法内调用 stopUpdateLocation:

[locationManager stopUpdatingLocation]

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2017-04-14
    相关资源
    最近更新 更多