Ios 将iBeacon监控逻辑放在应用程序委托中是否明智,以便在应用程序会话期间有效?

Ios 将iBeacon监控逻辑放在应用程序委托中是否明智,以便在应用程序会话期间有效?,ios,ibeacon,appdelegate,Ios,Ibeacon,Appdelegate,我希望我的iBeacons应用程序监视器不依赖于特定的视图控制器。为了避免重复代码,我应该将iBeacon监控逻辑放在app委托中吗?基本上,我希望应用程序在用户进入某个区域时显示本地推送通知,同时仍然能够在不同的屏幕上浏览应用程序。您实际上不必将逻辑放入AppDelegate(尽管对于简单的应用程序,我经常这样做)。要在后台启动应用程序,您需要做的关键事情是触发逻辑,从AppDelegate的didFinishLaunching方法开始监控。只要方法调用设置监控(即使它通过调用 另一个类中的方

我希望我的iBeacons应用程序监视器不依赖于特定的视图控制器。为了避免重复代码,我应该将iBeacon监控逻辑放在app委托中吗?基本上,我希望应用程序在用户进入某个区域时显示本地推送通知,同时仍然能够在不同的屏幕上浏览应用程序。

您实际上不必将逻辑放入AppDelegate(尽管对于简单的应用程序,我经常这样做)。要在后台启动应用程序,您需要做的关键事情是触发逻辑,从AppDelegate的didFinishLaunching方法开始监控。只要方法调用设置监控(即使它通过调用 另一个类中的方法中的逻辑)。这将导致监视回调方法在之后立即被调用

只要您在AppDelegate中持有对持有逻辑的类的引用(例如,将其实例设置为AppDelegate中的类变量),它就不会被垃圾收集

如果您希望在应用程序的其他部分访问该类的状态,只需将其设置为singleton即可。然后,您可以调用同一个类实例,从各种视图控制器访问信标跟踪状态


您可以在我为一个开源项目构建的类中看到一个例子,该项目使用的正是这种单例方法。你可以在同一个项目中浏览AppDelegate和View控制器,看看它是如何使用的。

是和否-就我个人而言,我会尽量保持AppDelegate干净(这是让它更容易完成“一切”的方法)。相反,我会将实际功能委托给另一个类,并让应用程序委托尽可能地协调其管理(应该可以在应用程序委托之外监视应用程序生命周期事件~因此这是所需解决方案的问题)。如果我采用委托路线,该对象将需要是单例对象?我应该用谷歌搜索哪些关键字或资源来获得这样实现它的想法?我在回答中添加了一个链接,指向一个使用singleton beacon跟踪类的示例项目。