这个问题在这里已经有了答案:
8年前关闭。
我刚读了一本书,说现代约定根本不是在大括号之间的 .h 文件中声明任何 ivars,而是使所有内容都具有属性。
我想确保即使在微不足道的情况下也是如此。我正在制作一个类,其中有一个名为“recording”的 BOOL 表示设备当前是否正在录制一些视频。这不是其他类需要的东西,我倾向于将它作为 BOOL 放在标题中,然后在 .m 文件中的 2 个需要它的地方引用它。
但是,我也想以公认的正确方式做事。但我不明白为什么我把它变成公共(public)属性(property)?
最佳答案
您所读的内容是错误的,简单明了的。
现代惯例是在有可以合成它们的相应属性时跳过 ivars。此外,使用最新版本的 LLVM 可以将您的 ivars 移动到您的实现文件(正如@DrummerB 已经提到的那样),以便标题不包含 ivars。这被认为是一种很好的做法,因为它不会公开类的内部工作。
但是根本就没有 ivars 和所有属于 ivar 的东西的属性吗?不,不是普通的Objective-C。