iOS解耦方案

2019-03-21  本文已影响0人  纳美克星人

解耦方案是针对AppDelegate,通过消息的转发、GCDMulticastDelegate代理的一对多模式来实现解耦。以下是核心代码:

消息转发:

+ (BOOL)resolveInstanceMethod:(SEL)sel{

    return NO;

}

- (id)forwardingTargetForSelector:(SEL)aSelector{

    if([selfrespondsToSelector:aSelector]) {

        return self;

    }

    return self.multicastDelegate;

}

添加delegate:

- (void)addImplementationArray:(NSArray *)targets

                         queue:(dispatch_queue_t)queue;

- (void)addImplementationQueueTarget:(id)target

                               queue:(dispatch_queue_t)queue

需要使用AppDelegate方法的类,需要实现UIApplicationDelegate协议。

https://github.com/PangDu/PDAppDelegate

上一篇 下一篇

猜你喜欢

热点阅读