ibeacons 和地理围栏相结合 swift
ibeacons and geofencing combined swift
我在我的 swift 项目中同时使用地理围栏和信标。但是每次我进入或离开任何区域时,他们的进入和退出方法都会发生冲突。更具体地说,我如何对相应的信标或地理围栏区域执行不同的方法?例如
我想在用户进入地理围栏区域时显示通知,并在进入信标区域时显示其他页面。
地理围栏区域和信标区域都是区域,因此会调用相同的 didEnterRegion
方法来通知您。您需要编写 didEnterRegion
方法来使用 if
语句检查区域的 class。 (我忘记了 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 项目中同时使用地理围栏和信标。但是每次我进入或离开任何区域时,他们的进入和退出方法都会发生冲突。更具体地说,我如何对相应的信标或地理围栏区域执行不同的方法?例如 我想在用户进入地理围栏区域时显示通知,并在进入信标区域时显示其他页面。
地理围栏区域和信标区域都是区域,因此会调用相同的 didEnterRegion
方法来通知您。您需要编写 didEnterRegion
方法来使用 if
语句检查区域的 class。 (我忘记了 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 提出的技术问题,作用有限。)