前端之家收集整理的这篇文章主要介绍了
在Objective-C中隐藏不可变接口后面的私有可变属性,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我基本上想问的是下面的
代码是否安全(不管它是否有效,因为它确实如此).即,公共getter是否会覆盖actionLog
属性的合成getter [属于不同类型]?
.h文件:
@interface SomeClass : NSObject
- (NSArray*) actionLog;
@end
.m文件:
@interface SomeClass ()
@property (strong,nonatomic) NSMutableArray* actionLog;
@end
@implementation SomeClass
...
@end
这不仅可以,而且正是为什么首先要创建类扩展!
是的,会有一个自动合成的ivar和一对getter / setter方法按预期生成.
对不起 – 错过了NSArray与NSMutableArray部分.不,你做不到;类型必须相同.
但是,您无论如何都不想返回可变数组.首先,调用者可能会修改它(一个错误).但是,更重要的是,调用者将假定内容是API所暗示的不可变的,因此,当该数组的内容从调用者下面更改时,它可能会导致问题(例如;调用者可以合理地假设结果为count将是稳定的并且可以缓存).
原文链接:https://www.f2er.com/c/119486.html