我现在使用estimote的ibeacon标签,并且是iOS编码的新手,同时通读了其自定义的beaconmanager和beaconmanagerdelegate类的实现。我发现“ESTBeaconManager”(http://estimote.github.io/iOS-SDK/Classes/ESTBeaconManager.html)符合“CLLocationManagerDelegate”,即苹果的核心位置经理代表。
但是,ESTBeaconManager没有实现任何“CLLocationManagerDelegate”方法,而“ESTBeaconManager”类具有其自己的委托协议“ESTBeaconManagerDelegate”,在这些协议中,许多方法与“CLLocationManagerDelegate”,并且当beconmanager发现某事或受到干扰时,我们可以使用它们来触发一些事件。
因此,我的问题是,ESTBeaconManager符合“CLLocationManagerDelegate”的意义是什么,以及这种机制的作用是什么,我们知道系统将触发“CLLocationManagerDelegate”中的方法,因为它们是苹果制造的。但是必须通过在定制代码中调用它们来触发“ESTBeaconManagerDelegate”中的定制方法(也许通过CLLocationManagerDelegate,对吗?)。
最佳答案
Estimote SDK部分基于Apple的Core Location API,以增强其测距和信标区域监视功能。 SDK的基础是添加一些附加功能,例如过滤掉“未知状态”信标(avoidUnknownStateBeacons
)或将来自多个区域的范围结果合并到单个didRangeBeaconsInRegion
回调(returnAllRangedBeaconsAtOnce
)等的选项。它还增加了与Estimote Cloud,例如从云端下载其他信标属性(例如color
)。
总而言之,符合ESTBeaconManager
的CLLocationManagerDelegate
是实现细节,您无需担心使用SDK。
关于ios - 为什么ESTBeaconManager符合CLLocationManagerDelegate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26066896/