startRangingBeaconsSatisfyingConstraint нескольких маяков - PullRequest
1 голос
/ 20 марта 2020

Когда я использую startRangingBeaconsInRegion с разными регионами, didRangeBeacons inRegion может определить все маяки, которые я установил, но когда я делаю то же самое с startRangingBeaconsSatisfyingConstraint didRangeBeacons satisfyingConstraint, можно определить только последний. Это ошибка с яблоком?

startRangingBeaconsInRegion

for (NSString *uuidString in uuidsString) {
    NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:uuidString];

    CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithUUID:uuid identifier:uuidString];
    [_locationManager startRangingBeaconsInRegion:region];
}

startRangingBeaconsSatisfyingConstraint

for (NSString *uuidString in uuidsString) {
    NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:uuidString];        

    CLBeaconIdentityConstraint *beaconIdentityConstraint = [[CLBeaconIdentityConstraint alloc] initWithUUID:uuid];
    [_locationManager startRangingBeaconsSatisfyingConstraint:beaconIdentityConstraint];
}

1 Ответ

1 голос
/ 20 марта 2020

Похоже, что это недавно появившаяся ошибка в CoreLocation с новым startRangingBeaconsSatisfyingConstraint API.

Обходной путь на данный момент заключается в использовании устаревшего startRangingBeaconsInRegion API.

См. Связанный пост здесь:

SWIFT: CoreLocation - Racing Beacons с использованием CLBeaconIdentityConstraint не поддерживает диапазон нескольких маяков

И сообщение на форуме Apple, сообщающее об ошибке:

https://forums.developer.apple.com/thread/130360

...