我正在使用我的iBeacon iOS应用程序。我开始使用Xcode 5.1进行编码。那个时候,每个代表都会被召唤。但是当我将Xcode更新为6.0.1以支持iOS 8中的应用程序时,以下委托方法未被调用(在设备中测试):
-(void) locationManager:(CLLocationManager*)manager
didExitRegion:(CLRegion*)region
在iOS 7中完美运行。任何人都可以向我推荐任何可能的解决方案吗?提前谢谢。
答案 0 :(得分:2)
使用您的locationmanager实例加密这个
self.locationManager = [[CLLocationManager alloc] init];
// New iOS 8 request for Always Authorization, required for iBeacons to work!
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[self.locationManager requestAlwaysAuthorization];
}
并保持您的应用后台刷新。我在iOS 8中运行它,它就像一个魅力。
如需更多帮助,请阅读本文 iBeacon http://ibeaconmodules.us/blogs/news/14279747-tutorial-ibeacon-app-development-with-corelocation-on-apple-ios-7-8
答案 1 :(得分:2)
在iOS 8上,请求位置权限有点不同。您必须要求允许您的应用在您的应用使用期间或始终使用位置服务。
要让iBeacons在后台工作,您必须拥有权限才能始终从Core Location获得反馈,因此请始终允许位置更新。
答案 2 :(得分:1)
检查后
转到settings
> Privacy
> Location services
> Your app
> Always
答案 3 :(得分:1)
将此添加到iOS8的位置管理器:
// Needed for iOS 8
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[self.locationManager requestAlwaysAuthorization];
}
干杯:D