我在快速项目中使用地理围栏和信标。但每当我进入或离开任何一个地区时,他们的进入和退出方法都会发生冲突。更具体地说,如何对相应的信标或地理围栏区域执行不同的方法,例如。 我想在用户进入地理围栏区域时显示通知,并在进入信标区域时显示其他页面。
答案 0 :(得分:0)
地理围栏区域和信标区域都是区域,因此调用相同的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上回答技术问题的用途有限。)