在为iBeacon区域化时,monitoringDidFailForRegion,kCLErrorDomain错误5

我正在开发一个简单的应用程序,它使用iOS7.1中的CoreLocation来确定预先设置的iBeacon。

我的代码确实很有效,直到它突然停止。 我没有改变代码中的任何内容。

在“ViewDidLoad”上开始监控后,“monitoringDidFailForRegion”上发生错误是“kCLErrorDomain error 5”:

self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"0E82E0A4-03FF-4A92-9C87-1F978917BD51"]; self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"com.henry.beacon"]; self.beaconRegion.notifyEntryStateOnDisplay = YES; if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]]) { NSLog(@"Monitoring is available."); [self.locationManager startMonitoringForRegion:self.beaconRegion]; [self.locationManager requestStateForRegion:self.beaconRegion]; } 

委托设置正确:

 @interface ViewController : UIViewController  

我检查了受监控区域的数量

 [[self.locationManager monitoredRegions] count] 

告诉我目前正在监测2个地区。 奇怪。

唯一有帮助的是重置iOS设备(iPad Mini与iOS7.1)。 之后,受监控区域的数量将恢复为1(这应该是正确的)。

你们中的任何人都遇到过同样的问题吗?我在代码中做错了吗? 这是iOS 7.1中的错误吗?

感谢您的任何意见/帮助。

亨利

更新:

我找到了关于这个主题的另一个主题,它提供了一些有趣的见解:

iBeacon:didRangeBeacons停止调用,必须重置设备才能再次工作

好像它确实是iOS7.1中的一个错误。 感谢您对此的意见。

检查您的蓝牙状态是打开还是关闭或蓝牙类型。 可能是旧版蓝牙检查它。 确保您的蓝牙在设备中打开。 这为我解决了这个错误。 谢谢