gpt4 book ai didi

iphone - 核心位置 - 后备、位置缓存和替代方案

转载 作者:行者123 更新时间:2023-12-03 21:23:40 24 4
gpt4 key购买 nike

我有一些关于核心位置的问题。

1) 如果用户拒绝我的应用程序使用核心位置的权限,或者核心位置由于某种原因不可用,是否有后备方案? (例如设备区域设置?)

2)我可以缓存设备的位置以供下次使用吗? Core Location 自己会执行此操作吗?

3)我确实需要仲春时节用户所在区域的日落时间,一旦我获得了设备的纬度和经度,我就有一个函数可以做到这一点。也许我可以根据区域设置对时间做出假设? (示例:在美国,假设大约晚上 7:00。)

编辑:

我真的想计算应用程序用户区域的日落。与 map 无关。我正在考虑以下事件顺序:

  • 检查核心位置的可用性。如果是,请使用它并将其存储在 NSUserPreferences 中。如果核心位置不可用,请继续后备。
  • 检查存储的位置。如果已存储,请使用它。如果没有,请继续...
  • 检查用户选择的时间。

最佳答案

1) 严格来说,如果用户不允许使用 CoreLocation,或者已授予权限但 CoreLocation 不可用,则没有其他后备方法可以以纬度、经度对的形式获取用户位置。使用区域设置可能并不适用于所有情况。首先,它只会给你一个可能与现实相差太远的近似值。但是,由您来判断此近似值是否适合您的应用程序。此外,有些用户使用的语言环境与其所在国家/地区的语言环境不同。而且,您不能保证出国旅行的人每次都会调整日期/时间。

2) Core Location 默认缓存从 GPS 设备检索到的最后一个位置。然而,对于出国旅行的人来说,这个缓存的位置肯定是错误的(即使对于几英里外旅行的人来说也是如此),一般来说,您应该丢弃缓存的值并每次重新本地化用户。我知道对于在本国旅行的人来说,这(通常)不会造成巨大的问题。但这仅取决于国家/地区:在意大利境内旅行不会改变时间,但在美国旅行可能会改变时间最多 3 小时。

3)我建议尝试使用核心位置,如果出现问题,只需要求用户输入他/她的本地时间或位置(城市应该足以满足您的目的)。如果您选择询问用户的位置,那么您可以获得相应的纬度/经度对,但这需要有效的网络连接。

关于iphone - 核心位置 - 后备、位置缓存和替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com