来自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是一个强烈依赖

本文详细介绍了NSProxy在iOS开发中的作用,特别是在解决消息转发和循环引用问题上的应用。通过一个实例展示了如何使用NSProxy创建WeakProxy,以避免NSTimer引起的循环引用,确保对象能够正确释放。同时,文章还探讨了Objective-C中继承自NSObject的原因,以及Swift与Objective-C在消息转发机制上的差异。

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



