已经有一个这样的问题可以回答,但是我对答案不满意:为什么AppDelegate继承自UIResponder?。
我想了解更多细节,因为我试图了解iOS应用程序的体系结构。
据我所知,UIResponder用于“响应”外力的事物(即触摸事件,运动事件等)。应用程序的初始化为什么需要成为UIResponder?也许我不了解AppDelegate实例的功能。
应用程序委托类继承自UIResponder。
这样,委托实例就可以参与响应者链并处理应用程序级别的操作。
编辑:
从iOS 5开始,有第6步:应用程序委托获得事件的最终结论。从iOS 5开始,应用程序委托从UIResponder继承,不再像以前那样从NSObject继承。
简而言之:首先是视图,如果视图具有视图控制器,则是视图控制器,其次是超级视图,直到层次结构的顶部是窗口。从那里到应用程序,最后到应用程序委托。
将应用程序委托添加为潜在响应者是令人欢迎的添加,因为我们很少(如果有的话)子类UIApplication或UIWindow。但是,如果仅创建窗口并在application:didFinishLaunching…委托方法中添加rootViewController,我们总是拥有自己的应用程序委托。因此,如果整个视图层次结构中都没有响应者,那么这实际上是响应者可以退回的最佳位置。
取自:
https://www.cocoanetics.com/2012/09/the-amazing-responder-chain/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句