locationManager' didExitRegion'没有被称为iBeacon Xcode

时间:2014-09-25 13:36:03

标签: ios objective-c xcode ibeacon

我正在使用我的iBeacon iOS应用程序。我开始使用Xcode 5.1进行编码。那个时候,每个代表都会被召唤。但是当我将Xcode更新为6.0.1以支持iOS 8中的应用程序时,以下委托方法未被调用(在设备中测试):

-(void) locationManager:(CLLocationManager*)manager 
          didExitRegion:(CLRegion*)region

在iOS 7中完美运行。任何人都可以向我推荐任何可能的解决方案吗?提前谢谢。

4 个答案:

答案 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