在为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中的一个错误。 感谢您对此的意见。
检查您的蓝牙状态是打开还是关闭或蓝牙类型。 可能是旧版蓝牙检查它。 确保您的蓝牙在设备中打开。 这为我解决了这个错误。 谢谢