如何检测新的iBeacon?

时间:2017-05-04 18:05:34

标签: ios swift ibeacon

我测量信标并在我的TableView中显示它们。我需要检测我的应用何时检测到新的信标。我尝试这样做,但出了点问题

Customer BalancePeriod38 BalancePeriod39 BalancePeriod40
1              10              9               10
2              15              .               20

1 个答案:

答案 0 :(得分:0)

通过两个阵列迭代不会轻易工作,因为如果你同时看到两个信标,你就会错误地认为它们是"新的"因为一个与另一个不一样。

我通常使用Set来执行此操作:

var detectedBeacons: Set<String>

func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
  for beacon in beacons {
    let key = "\(beacon.proximityUUID) \(beacon.major) \(beacon.minor)"
    if detectedBeacons.contains(key) {
      print("Old Beacon")
    }
    else {
      print("New Beacon")
      detectedBeacons.insert(key)
    }
  }
}