【IOS】 readonly IOS下实战入门

本文探讨了在Objective-C中,当属性被设计为readonly时,如何通过指针和重新声明属性来实现内部修改。详细介绍了两种方法的使用场景和效果,并比较了各自的特点。

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

当很多XXX.h 文件属性YY设计中,对外的设计是 YY(readonly) 时,外界便不能修改该属性,

同时问题也来了,该XXX类的内部也不能修改改YY属性了,你瞬间凌乱过么。。。Y_Y

然后就发现如下两种方法:

一:指针

永远不要小看指针的力量,在内部可以用 obj->_YY 的方式修改YY属性了,这种方式也确实

有点让人YY

    // 瞬间变红有木有
//    self.YYname = @"skyming";
    
    self->_YYname = @"skyming";
    或 _YYname = @"skyming";
 

二:重新声明属性

貌似很正规的样子,如果自己写的类属性有不多,公司也没有什么其他代码规范,直接放在

.m 中重新声明一遍就好了

对比下吧 .h 中的声明

@interface XXX : NSObject

@property (nonatomic, readonly, strong) NSString *YYname;
@end

.m 中的声明
@interface XXX ()

@property (nonatomic, readwrite, strong) NSString *YYname;
@end
如果你同一个属性,.h 文件、 .m 文件中都是readonly ,就会报错


当然如果属性多了,或者在SDK中的话直接就再写个Private的.h 吧

而且很多公司内部的SDK中也是这么搞的、、、

如果你们公司的SDK是这样,就默默点赞吧, Y_Y


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值