通过在Objective-C中使用RSSI,在每一秒内找到最接近的信标



在堆栈溢出中,我已经看到答案以查找最接近的信标(Swift查找RSSI的最接近信标(。

在这里,我试图准确地找到目标C中的最接近。我的应用程序在每个SEC中都会发现信标,时间准确性无法正常找到最接近的时间。正如他所说,RSSI将在每1秒内更新。因此,我想使用RSSI过滤最近的信标。我将您的Swift代码转换为Objective-C,但工作不正常。

这是Swift代码:

//Swift code
var closestBeacon: CLBeacon? = nil
for beacon in beacons {
    if beacon.rssi < 0 && closestBeacon != nil && beacon.rssi > closestBeacon!.rssi {
        closestBeacon = beacon as? CLBeacon
    }
}

这是我转换不起的Objective-C代码:

CLBeacon *closest = nil;
for (CLBeacon *beacon in beacons) {
    if (beacon.rssi < 0 &&  closest != nil && beacon.rssi > closest.rssi) {
        closest = beacon;
    }
}

在这里,请在我做错的地方让我完美。

@paulw11所建议的两个版本中都有一个错误。由于我为回答另一个问题写了这个错误是一个解决方法:

Swift

var closestBeacon: CLBeacon? = nil
for beacon in beacons {
    if closestBeacon == nil || beacon.rssi < 0 && beacon.rssi > closestBeacon!.rssi {
        closestBeacon = beacon as? CLBeacon
    }
}

Objective-C

CLBeacon *closestBeacon = nil;
for (CLBeacon *beacon in beacons) {
    if (closestBeacon == nil || beacon.rssi < 0 && beacon.rssi > closest.rssi) {
        closestBeacon = beacon;
    }
}

我也修复了原始帖子中的错误。

相关内容

  • 没有找到相关文章

最新更新