如果我用 Objective-C 中的readonly 属性 替换我所有的访问器(类似 get 的 const 方法),是否有任何缺点?它们可以互换吗?
为了文档/可读性,我更喜欢只读属性。
来自 C++,我正在考虑用 ObjC 中的 readonly 属性 替换我所有的 const 方法(非可变方法)。
如果我遵守这个约定,那么我可以自动假设任何常规方法都会改变状态(C++ 中的非 const 方法)。同样从函数式编程的角度来看,知道只读属性不会更改任何状态(没有副作用)是很有用的。
最佳答案
是的,当然 - 如果您愿意,以这种方式实现是很好的。就上下文而言,这样做可能有很多优势。
要注意的缺点是生成属性的成本——它们可能超过twenty times slower。 .如果(例如)您的属性(property)不可重新分配,则执行所有引用计数循环/自动释放事件是一种巨大的浪费。
另一个(次要)缺点是您会经常发现自己实现或声明私有(private) setter。
关于Objective-C:可以用只读属性替换所有访问器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071349/