【问题标题】:ibeacons and geofencing combined swiftibeacons 和地理围栏结合 swift
【发布时间】:2016-06-17 10:20:14
【问题描述】:

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

【问题讨论】:

    标签: ios swift ibeacon geofencing


    【解决方案1】:

    地理围栏区域和信标区域都是区域,因此调用相同的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
    }
    

    (谢谢大卫。在我喝咖啡之前用 iPad 回答技术问题的用处有限。)

    【讨论】:

    • 谢谢邓肯 你能告诉我任何其他语言的语法吗,我会隐藏它...
    • 这是正确的。在 Swift 中,您可以判断您的 region 是否为 CLBeaconRegionif let beaconRegion = region as? CLBeaconRegion { /* beacon code here */ } else { /* geofence code here */ }
    • 不用担心。如果这回答了您的问题,您应该点击复选框接受它。
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多