Coc*_*ico 4 properties objective-c ios
可能重复:
iOS:每个iVar必须真正属性吗?
我刚读了一本书,说现代约定不是在大括号之间的.h文件中声明任何ivars,而是要创建所有属性.
我想确保即使在琐碎的情况下也是如此.我正在创建一个类,其中有一个名为"录音"的BOOL,表示该设备当前是否正在录制某些视频.这不是其他类需要的东西,我的倾向是将它作为BOOL放在标题中,然后在需要它的2个点中的.m文件中引用它.
但是,我也希望以正确的方式做事.但我不明白为什么我把它变成公共财产?
你读的是错的,简单明了的.
现代约定是当有相应的属性可以合成它们时跳过ivars.此外,使用最新版本的LLVM,可以将您的ivars移动到您的实现文件(如@DrummerB已经提到的那样),以便标头不包含ivars.这被认为是良好的做法,因为它不暴露班级的内部运作.
但是根本没有ivars和伊萨的一切财产?不,不是正常的Objective-C.
你的书是对的(也是错的).不要再在标题中声明ivars了.仅出于兼容性原因支持.但也不要声明私有变量的属性.
如果您想要声明其他类不需要使用的私有ivar,请在您的实现文件中声明它们:
// MyClass.m
@implementation {
BOOL recording;
}
// methods
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |