OC阅读笔记九:分类(下)

本文探讨了Objective-C中分类定义属性的限制,特别是如何通过class-continuation分类来解决实例变量的添加问题,并讨论了替代方案及其潜在的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    除了"class-continuation"之外的分类定义属性都无法向类中新增实例变量.

    如果必要,可以用@dynamic声明,然后使用消息转发机制在运行期拦截方法调用,提供实现方法.

    关联对象能解决分类不能合成实例变量的问题,但容易在内存管理问题上出错.

    一般最好的作法是将所有属性都定义在主接口.

    在"class-continuation"分类里可以隐藏实例变量和遵循的协议.也可以将只读的属性拓展为可读写供实现代码使用.

    "class-continuation"分类也可以引入C++类,这么做可以避免头文件被引用时,实现文件被拓展为.mm的问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值