0

如果我有一个设备作为接收器并且它连接到一个 iBeacon,如果它连接到另一个 iBeacon 同时仍在处理与第一个 iBeacon 的连接(例如,还没有完成运行 didEnterRegion 方法)会发生什么?框架是否会自动处理此问题并创建另一种“实例”,还是我会遇到问题?

谢谢

4

2 回答 2

1

I think that if they're all transmitting the same region (i.e. they all have the same proximity UUID) then CoreLocation won't keep sending the didEnterRegion and didExitRegion methods.

Once you start ranging for a region (that's a mouthful) the locationManager:didRangeBeacons:inRegion: method gets called repeatedly, which is where you can get the details of the connected beacons.

于 2014-11-18T15:25:03.117 回答
1

如果CoreLocation连续快速检测到两个不同的区域进入事件,那么两个线程肯定有可能didEnterRegion同时执行您的委托。所以,是的,你可能会遇到问题。

因此,您应该注意:

  1. 在该方法中设计您的代码,以便它在同时线程中执行时能够正常运行。

  2. 以该方法设计您的代码,使其快速退出。任何长时间运行的处理都应在新线程中完成。

虽然问题提到“连接到另一个 iBeacon”,但重要的是要了解没有实际连接 - 信标是仅传输设备,iOS 将被动查找它们并根据开始看到它们发送委托回调方法,或者没有见他们的时间更长。

于 2014-11-18T16:13:06.693 回答