1.Appdelegate 继承与LMAppdelegate
2.LMAppdelegate继承 UIResponder<UIApplicationDelegate>
3.Appdelgate里面所有代理方法必须走父类[super XXX]
4.所有Appdelegate代理方法被LMModuleProtocol封装,在LMAppdelegate由LMNoduleManager驱动触发(performSelector**with LMContext obj)
5.这里由在Appdelegate注册的服务类,如果需要走Appdelgate代理的,需要遵循LMModuleProtocol协议,在4哪里触发,只需要在服务类中实现即可
6.如未使用Appdelgate代理方法的服务类,如导航,tababr配置,网路等功能,也在这里注册,即加入了LMAppConfig的appModuleService数组中然后只用在想要的地方通过moduleServicesWithProtocol方法取出id<xxdelegate> delegate指针,则用[delegate XXX]可以直接调用该方法[服务类要遵循相应的xxdelegate,并实现].
以上就是为了瘦身Appdelegate采用的模块化开发,以服务组件形式来拆分各个功能,类似weex开发时候使用组件化扩展功能[如weex在iOS端扩展的图片下载功能,也是采用这种方式]
网友评论