来自Leo的原创博客,转载请著名出处
我的StackOverflow
我的Github,欢迎Follow
https://github.com/LeoMobileDeveloper
前言
NSProxy是iOS开发中一个消息转发的基类,它不继承自NSObject。因为这个类不太常用,所以对于很多开发者来说根本没有用过它。
不过,这个类对于iOS开发还是很有用的。本文首先会讲解下这个类的基础,然后讲解下消息转发机制,因为我觉得不懂消息转发机制,很难理解更深层次的东西,最后通过一个实例来讲解下NSProxy的实际应用。
NSProxy
NSProxy本身是一个抽象类,它遵循NSObject协议,提供了消息转发的通用接口。NSProxy通常用来实现消息转发机制和惰性初始化资源。
使用NSProxy,你需要写一个子类继承它,然后需要实现init以及消息转发的相关方法。
//当一个消息转发的动作NSInvocation到来的时候,在这里选择把消息转发给对应的实际处理对象
- (void)forwardInvocation:(NSInvocation *)anInvocation
//当一个SEL到来的时候,在这里返回SEL对应的NSMethodSignature
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
//是否响应一个SEL
+ (BOOL)respondsToSelector:(SEL)aSelector
为什么OC中要继承NSObject而Swift中不用?
很简答,Objective C是一个强烈依赖运行时(