gpt4 book ai didi

ios - 区域监控需要获取20多个通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:18 25 4
gpt4 key购买 nike

我正在开发一个用户可以设置多个位置的应用程序。当用户进入或离开特定位置边界时,我成功显示通知。

现在,我需要为所有保存的位置提供监控,而且可能有数百个甚至更多。我在 Apple 论坛和许多 iOS 设备只允许 20 区域监控的地方读过。

enter image description here

我开发了我的代码来超越这种情况。我已经设置了 locationManager.distanceFilter = 200; 并且当我获得位置更新时。首先,我停止了所有区域监控和最近位置的条件监控,并再次启动 20 个已保存位置的区域监控。

我认为上述解决方案可能会导致在停止并重新启动区域监控时丢失任何已保存的位置。所以,请给我任何其他更好的解决方案来解决这个区域监控只有 20 个通知的问题。

祝你有美好的一天.!!..

最佳答案

  1. 拥有一个 NSMutableArray,其中包含您要监控的所有区域 +20。
  2. 收听重要的位置更新。
  3. 当您获得位置更新时,如果您所有区域的 NSMutableArray 都超过 20,则停止监视所有被监视的区域并使用 harvesine 公式计算最近的 20 个区域:

Harvesine - Objective C

Harvensine - Swift

这将为您提供两个位置之间的距离。之后,您可以将该距离与区域半径进行比较,以了解是否在该区域内。

注意:如果您的半径以米为单位,则此距离将以公里为单位,然后只需将 haversine 方法的结果乘以 1000,以便将其转换为米。

  1. 开始监控最近 20 个区域的结果列表。

这将允许您始终根据您的位置监控最近的 20 个区域。能够监控超过 20 个,因为它会始终将监控区域更改为最近的 20 个区域。

关于ios - 区域监控需要获取20多个通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29654154/

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