Objective-C:可以用只读属性替换所有访问器吗?

标签 objective-c properties styles

如果我用 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/

相关文章:

在调用已知会检查参数本身的函数之前检查参数

javascript - 正则表达式匹配 html 样式属性的有效值

wpf - 自定义Datepicker不弹出日历

ios - 录制时实时上传音频片段?

ios - 在 UITableView Objective-C 中实现 UISearchController

ios - CallKit: 使用 WebRTC 时没有声音

css - 在ng-repeat中动态创建类,并关联属性

c++ - 成员函数指针作为构造函数参数

c# - 尝试将参数传递给 t4 模板时出错

ios - 设置段颜色的tintColor时如何停止导航栏TintColor的变化?