NSProxy与消息转发机制

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

来自Leo的原创博客,转载请著名出处

我的StackOverflow

profile for Leo on Stack Exchange, a network of free, community-driven Q&A sites

我的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是一个强烈依赖运行时(

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值