SJHLocationManager 版本 0.1.0

SJHLocationManager 版本 0.1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布日期最后发布2014年12月

James Heller 维护。



SJHLocationManager 版本 0.1.0

  • 作者:
  • James Heller

SJHLocationManager 类实现了 CLLocationManager 的单例子类,利用位置数据来处理进入和退出区域。标准区域处理在大区域中效果最佳,但在小区域内则有些不足。

Apple 文档中有几点需要注意。1. 区域监控从注册后立即开始。但是,不要期望立即接收到事件。只有边界穿越可以生成事件。因此,如果在注册时用户的位置已经在区域内,位置管理器不会生成事件。相反,您必须等待用户穿越区域边界,然后在生成事件并发送到代理之前等待。2. 具体来说,用户的位置必须穿越区域边界,远离边界至少一段距离,在该距离至少保持20秒后才会报告通知。3. 可以假定最小距离大约为200米。4. 如果没有更早,应用程序可以期望在3到5分钟内收到相应的区域进入或区域退出通知。

为了便于更精确的区域监控,每次位置更新时都会检查添加用于监控的任何区域。为了便于及时更新区域,一个 NSTimer 被安排。间隔由 SJHLocationManagersetTimerInterval: 方法确定。

CLLocationManagerDelegate

一对一 一对多
协议/委托 通知

当位置事件发生时,可以通过委托传递给一个类,或者通过 NSNotificationCenter 广播。

SJHLocationManager 实现了 CLLocationManagerDelegate 方法。如果设置了 SJHLocationManager.delegate,则调用其相应的方法。否则,当调用委托方法时,在默认中心使用相应的通知名称常量向 [NSNotificationCenter defaultCenter] 发布通知。

通过以下方式接收通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestFinishedHandler:) name:kLocationManagerDidUpdateLocation object:nil];

安装

开发说明

当前,仅支持 CLCircularRegion 对象进行区域跟踪。

作者

James Heller,[email protected]

许可协议

SJHLocationManager项目根据MIT许可协议提供。更多详情请查阅LICENSE文件。