【发布时间】:2014-12-13 06:39:22
【问题描述】:
我注册了自己的位置管理器来监控和测距一些信标:
[self.locationManager startMonitoringForRegion:region];
[self.locationManager startRangingBeaconsInRegion:region];
我的理解是,当找到一个或多个信标时,会调用此委托方法:
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
当我打开我的信标时,确实调用了这个委托方法,但是信标数组是空的。我的信标没有在该数组中列出有什么原因吗?
这里有一个截图来说明这种情况:
其他注意事项:
- 我使用MacBeacon 来传输我的信标信号。稍后我会尝试使用真正的信标,但 MacBeacon 在 iOS 7 中对我来说工作正常。
- 我尝试延迟测距,直到我得到
didEnterRegion:或didDetermineState:被调用,但这仍然会导致同样的事情。 - 我已向我的位置经理申请位置权限:
[self.locationManager requestWhenInUseAuthorization];。 - 我有一个非常相似的代码,在 Xcode 5/iOS 7 SDK 中编译得很好。这是特定的 Xcode 6/iOS 8 行为吗?
- 我已在我的 plist 中添加了
NSLocationWhenInUseUsageDescription键。
【问题讨论】:
-
MacBeacon 使用的桌面操作系统版本是什么?
-
@davidgyoung 我正在使用 Mavericks,10.9.4。
-
你的笔记帮助了我! :) 我不得不把 [self.locationManager requestWhenInUseAuthorization];
标签: ios ios8 core-location cllocationmanager ibeacon