ios - ibeacons 和地理围栏结合 swift

标签 ios swift ibeacon geofencing

我在我的 swift 项目中同时使用了地理围栏和信标。但是每次我进入或离开任何区域时,他们的进入和退出方法都会发生冲突。更具体地说,我如何对相应的信标或地理围栏区域执行不同的方法? 我想在用户进入地理围栏区域时显示通知,并在进入信标区域时显示其他页面。

最佳答案

地理围栏区域和信标区域都是区域,因此会调用相同的 didEnterRegion 方法来通知您这两个区域。您需要编写 didEnterRegion 方法来使用 if 语句检查区域的类。 (我忘记了 Swift 中的语法。)

编辑:

Objective-C 代码是

if ([region isMemeberOfClass: [CLBeaconRegion class]])
{
  //beacon code
}
else
{
  //geofence code
}

您当然可以将其转换为 Swift 语法,但 David Young 在下面的评论中展示了更好的方法:

if let beaconRegion = region as? CLBeaconRegion
{
  //beacon code
}
else
{
  //geofence code
}

(谢谢 David。在喝咖啡之前通过 iPad 回答技术问题的作用有限。)

关于ios - ibeacons 和地理围栏结合 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879054/

相关文章:

ios - 图像未压缩到小于 307kb。 ios9

ios - 我可以让 UITextField 不可见吗?

ios - 如何快速将枚举存储到可变数组中

ios - Swift 中的自定义类集群

ios - 在 Swift 中使用 Parse 进行投票按钮

ios - 使用 Realm 和 XCTest 进行测试——权限被拒绝?

core-location - iBeacon 和 XCode - 使用 CoreLocation 进行发现并与 CoreBluetooth 连接

ios - 动画 View 约束而不动画其他 View

ios - 测距信标仅在应用程序运行时有效?

ios - 检测到信标时打开新 View