objective-c - 现代 Objective-C 约定真的没有任何不是属性的 ivar 吗?

标签 objective-c ios properties

<分区>

Possible Duplicate:
iOS: must every iVar really be property?

我刚刚读了一本书,说现代惯例是根本不在花括号之间的 .h 文件中声明任何 ivar,而是使所有内容都具有属性。

我想确保即使在微不足道的情况下也是如此。我正在制作一个类,其中有一个名为“recording”的 BOOL,它表示设备当前是否正在录制一些视频。这不是其他类需要的东西,我倾向于将它作为 BOOL 放在标题中,然后在需要它的 2 个位置的 .m 文件中引用它。

但是,我也想以公认的正确方式做事。但我不明白为什么要将其设为公共(public)属性(property)?

最佳答案

你读到的是错误的,简单明了。

现代惯例是在存在可以合成它们的相应属性时跳过 ivars。此外,在最新版本的 LLVM 中,可以将你的 ivars 移动到你的实现文件中(正如@DrummerB 已经提到的那样),以便标题不包含 ivars。这被认为是好的做法,因为它不会公开类的内部工作。

但是根本没有ivars 和所有的ivars 的属性?不,不是普通的 Objective-C。

关于objective-c - 现代 Objective-C 约定真的没有任何不是属性的 ivar 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821995/

相关文章:

javascript - 用户界面自动化: Access UIViews inside UIScrollView

ios - Flash 中的动画到 IOS

c# - Java 是否具有 "properties",其工作方式与属性在 C# 中的工作方式相同?

ios - 无法将类型 'CFString' 的值转换为预期的参数类型 'UnsafePointer<Void>'(又名 'UnsafePointer<()>')

spring - 自定义 spring 属性源无法解析 @Value 中的占位符

.net - 如何使用 Reflexil v1.5 修改 .net 属性?

objective-c - 在 cocos2d 游戏中,如何允许两个操纵杆同时输入?

ios - 更新 iPhone 应用程序删除了旧版本数据

ios - UICollectionView 和单元格分隔符?这是要由补充意见处理的事情吗?装修意见?在细胞本身内?

ios - 从深层 JSON 结构构建 UITableView