你的位置:首页 > 软件开发 > 操作系统 > iOS Class 使用NSProxy和NSObject设计代理类的差异

iOS Class 使用NSProxy和NSObject设计代理类的差异

发布时间:2016-09-19 15:00:13
经常发现在一些需要使用消息转发而创建代理类时, 不同的程序员都有着不同的使用方法, 有些采用继承于NSObject, 而有一些采用继承自NSProxy. 二者都是Foundation框架中的基类, 并且都实现了<NSObject>这个接口, 从命名和文档中看NSPro ...

  经常发现在一些需要使用消息转发而创建代理类时, 不同的程序员都有着不同的使用方法, 有些采用继承于NSObject, 而有一些采用继承自NSProxy. 二者都是Foundation框架中的基类, 并且都实现了<NSObject>这个接口, 从命名和文档中看NSProxy天生就是用来干这个事情的. 但即便如此, 它们却都定义了相同的消息转发的接口, 那我们在使用二者来完成这个工作时有什么差异呢.

先贴一下通过二者来创建代理类的最基本实现代码.

继承自NSProxy

1@implementation THProxyA- (id)initWithObject:(id)object {- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector {- (void)forwardInvocation:(NSInvocation *)invocation {@end@implementation THProxyB- (id)initWithObject:(id)object {- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector {- (void)forwardInvocation:(NSInvocation *)invocation {@endNSLog(@"%d", [proxyA respondsToSelector:@selector(length)]);NSLog(@"%d", [proxyA isKindOfClass:[NSString class]]);
        

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:iOS Class 使用NSProxy和NSObject设计代理类的差异

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。