gpt4 book ai didi

Objective-C:私有(private)变量 VS 私有(private)属性

转载 作者:太空狗 更新时间:2023-10-30 03:42:14 38 4
gpt4 key购买 nike

对我来说,过去作为 Objective-C 开发人员很简单。一个类需要公开的每个字段都是一个属性,每个私有(private)字段都是一个没有 getter 或 setter 的实例变量。但我经常看到人们在实现文件中使用私有(private)接口(interface)来声明私有(private)属性。我被告知这是现在做事的方式。

虽然这很好用,但我很难看出其中的优势。只要我不需要 getter 或 setter 中的某些逻辑,我就会继续对所有非公开的内容使用实例变量。我不得不承认使用属性然后使用关键字 self 使代码更具可读性。您可以查看属性是否属于该类,或者它是否只是方法内的局部变量,但这不是唯一的原因。

为什么或为什么不使用私有(private)属性?

最佳答案

使用(私有(private))属性而不是 ivar 有几个原因。

  • 正如您所说,使用属性将使您能够轻松地使用访问器方法,这些访问器方法除了访问变量之外还可以执行一些额外的编码。
  • KVO不适用于 ivars。
  • 只为实现创建一个公共(public)只读属性 readwrite,除了 getter 之外还有一个 setter 合成器(正如 Brad 所指出的)
  • 个人喜好、习惯或懒惰(属性(property)是公共(public)的,但被改为私有(private)的)。

关于Objective-C:私有(private)变量 VS 私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19982735/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com