首页 > 解决方案 > startRangingBeaconsSatisfying约束多个信标

问题描述

当我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];
}

标签: iosuuidibeaconlocationmanager

解决方案


这似乎是最近在 CoreLocation 中使用新startRangingBeaconsSatisfyingConstraintAPI 引入的错误。

目前的解决方法是使用已弃用的startRangingBeaconsInRegionAPI。

在此处查看相关帖子:

SWIFT:CoreLocation - 使用 CLBeaconIdentityConstraint 测距信标不测距多个信标

苹果论坛帖子报告了这个错误:

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


推荐阅读