自 Xcode 6.3 以来可能出现的新 iBeacon 监控问题
Posted
技术标签:
【中文标题】自 Xcode 6.3 以来可能出现的新 iBeacon 监控问题【英文标题】:New Possible iBeacon Monitoring Issue since Xcode 6.3 【发布时间】:2015-04-14 22:01:09 【问题描述】:所以这里是细分
所有 Swift 语言 配置一: 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 aka 直到 Xcode 版本 6.3 中的工作方式(基本上它在 Xcode 升级之前是如何工作的。
我真正的问题:是否还有其他人遇到此问题,并且是否有人知道任何可能的解决方法来获取 didExitRegion 调用以返回正确的 CLRegion。我还使用了我们公司的一个开发人员帮助支持的东西,希望苹果自己可以回答,因为这似乎是 xcode 如何处理操作系统调用的一部分。因此,如果我收到他们的回复,我会将其发布在下面。 提前为我的新手道歉,这只是我的第二个或第三个问题,仍然掌握它。 编辑: 没关系,我是个大白痴,我不小心复制粘贴了一些我正在为不同问题修复的代码,从而覆盖了变量...
【问题讨论】:
您在 6.4 测试版上获得相同的行为吗? 没关系,我是个大白痴,我无意中复制粘贴了一些我正在为其他问题修复的代码,从而覆盖了变量... 【参考方案1】:这只是一个想法……
来自startMonitoringForRegion:
您必须为要监控的每个区域调用一次此方法。如果应用程序已经监控了具有相同标识符的现有区域,则旧区域将被新区域替换。
先尝试注册较小的区域。还要在运行时查看monitoredRegions
,看看它是否包含您所期望的内容。
【讨论】:
这里的identifier
是应用程序在监控区域时提供的字符串,而不是 UUID/Major/Minor - 这可能是问题所在,但前提是OP 没有为每个区域指定不同的标识符。
我为每个区域使用不同的标识符。并且所有不同的区域都显示在监控表中。主要和 2 个子区域。我遇到的问题是我的情况是使用 Xcode 6.2 而不是 6.3,实际上没有更改任何代码。【参考方案2】:
不是xcode的问题你没有正确设置didEnterRegion and didExitRegion
的条件
【讨论】:
以上是关于自 Xcode 6.3 以来可能出现的新 iBeacon 监控问题的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 6.3 错误 - 无法在情节提要中创建 IBOutlet 引用或使用自定义 UIViewController
自 Xcode 13 / iOS15 以来,获取“公共数据库中不允许自定义区域”
XCode 6.3 错误:Interface Builder 文件中的未知类
UITableViewAutomaticDimension 在 Xcode 6.3 中不起作用