现代移动应用程序可以接收来自应用程序外部的真正异步事件,例如推送通知。处理这些事件有点麻烦,因为事件到达时,应用程序可能无法立即处理。作为一个例子,如果已经显示一些弹出窗口或者如果UI正好在其他东西的中间,则显示弹出警报以响应推送通知可能是不可能的。你如何处理这些事件?在UI中处理异步事件
具体而言,用于处理异步事件的代码不能简单地放置在普通的UIViewController
中,可以吗?屏幕上总是有不同的控制器,具体取决于用户在UI中的位置。虽然我可以在每个视图控制器中重复代码(或将其重构为共同的祖先),但感觉像是一种黑客。
如果我处理了某些后台服务对象中的事件(感觉不错),我仍然需要联系“当前主动控制器”并中继事件信息。但是在iOS中并没有像“当前主动控制器”那样的东西,即使存在,控制器仍然必须指出它是否可以自由显示事件。再一次,它看起来有很多错综复杂的角落案件需要处理。
总之,有没有一种模式或库来处理这样的事件,而不是逻辑传播到整个应用程序?
我知道这是一种主观的,但我认为这是一个简单而有建设性的答案。