聽到這個報道的多個報道,我試圖重現這個沒有成功。對於測試設置,我創建了一個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