首页 > 代码库 > IOS 对 readonly 的一点坏想法

IOS 对 readonly 的一点坏想法

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

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

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

一:指针

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

有点让人YY

    // 瞬间变红有木有
//    self.YYname = @"skyming";
    
    self->_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


IOS 对 readonly 的一点坏想法