听到这个报道的多个报道,我试图重现这个没有成功。对于测试设置,我创建了一个CLBeaconRegion
对象并注册了它。然后,我计算回调数为didRangeBeaconsInRegion
的方法,并将其除以测试开始后的秒数,以获得每秒回调的测量值。
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc]initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] identifier:@"test"];
[self.rangingLocationManager startRangingBeaconsInRegion: region];
...
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)iBeacons inRegion:(CLBeaconRegion *)region {
if (startTime == nil) {
startTime = [[NSDate alloc] init];
}
long secsSinceStart = -[startTime timeIntervalSinceNow];
callbacks++;
NSLog(@"Ranging callbacks per second: %1.2f", 1.0*callbacks/secsSinceStart);
}
这里是我的结果从的NSLog:
IOS版本:9.0.2(13A452) 手机型号:iPod Touch的ME643LL/A
2015年10月9日17:20 :02.660 beaconTest [214:7044]每秒测距回调:1.03
IOS版本:8.3(12F69) 手机型号:iPod touch的ME978LL/A
2015年10月9日17:27:35.842 beaconTest [629:242941]测距每秒回调:1.02
,我无法重现并不意味着这个问题是不存在的事实。这可能是iOS 9的早期版本比当前可用的问题。它可能只存在于我无法测试的特定条件下。
但是,可以得出结论,并非所有9.0.2版本的iOS设备都会遇到此问题中描述的症状。
您定义并启用了多少个'Region'对象?你确定你没有每秒得到4个回调,每个区域有一个回调? iOS 8中的 – davidgyoung
- 如果范围为一个区域,则每秒调用一次,如果范围为2个区域,则每秒调用两次。在iOS 9中 - 在一个区域范围内每秒调用一次。然而,当涉及2个地区 - 它变得非常难以预测。每秒几次,有时每秒20-30次。我不确定它是iOS-9的bug还是故意改变? –
你看到这个iOS的确切版本?在下面的答案中看到我的测试结果无法重现9.0.2 – davidgyoung