自Xcode 6.3以来新的可能的iBeacon监控问题

时间:2015-04-14 22:01:09

标签: ios iphone xcode swift

所以这里是breakDown

所有Swift语言 配置1: Xcode 6.3使用任何版本的iOS 8.1 +

配置2: Xcode 6.2对于任何版本的iOS 8.2及更低版本,因为XCode 6.3需要构建到iOS 8.3设备。

Iphone 5 / Ipod 5th Gen两项测试。

在配置#1期间 在我们的应用程序中,我们监控主要区域(UUID没有主要/次要)。在引发enter事件之后,我们还开始监视具有相同UUID但具有指定的主要/未成年人的子区域。进入"主要"在具有多个较小区域的区域中,当仅删除其中一个区域时,将调用CLLocationManager的函数didExitRegion,但是按预期方式调用主区域而不是子区域。当我们退出所有子区域(因此退出主区域)时,我们得到2个回调,这两个回调都是针对主要区域的。

我们期望的行为是当您退出子区域而不是主区域时,您将获得子区域的回调。当退出最后一个子区域时,您会得到2个回调,一个来自子区域,另一个来自主区域。
这是在苹果文档中写的行为,以及它在我们的CONFIG#2中的工作原理,直到Xcode版本6.3(基本上它是如何工作的,直到Xcode的升级。

我真正的问题:是否有其他人遇到此问题,并且有任何人知道任何可能的工作来获取didExitRegion调用以返回正确的CLRegion。我还使用了我们公司开发人员帮助支持的东西,希望苹果本身可以回答,因为这似乎是xcode处理操作系统调用的一部分。因此,如果我从他们那里收到回复,我会将其发布在下面 提前抱歉我的新闻,这只是我的第二个或第三个问题,仍然掌握它  编辑: 没关系,我是一个巨大的白痴,我不小心复制粘贴了一些代码我正在为一个不同的问题修复...

2 个答案:

答案 0 :(得分:0)

这只是一个想法...

来自startMonitoringForRegion:

  

您必须为要监控的每个区域调用此方法一次。如果应用程序已在监视具有相同标识符的现有区域,则旧区域将替换为新区域。

首先尝试注册较小的区域。另请在运行时查看monitoredRegions,看看它是否包含您期望的内容。

答案 1 :(得分:0)

这不是xcode的问题,你没有正确设置didEnterRegion and didExitRegion

的条件