1
6
直接使用ivar可以获得较小的性能优势。但是,为了避免混淆,我通常在ivar前面加上前缀uo,然后使用@synthesis foo=foo合成一个属性;这意味着我可以做[自foo]或foo。然后在我所指的代码中,它变得更加清晰。 然而,优势并不多,一些人可能认为这是过早的优化。使用属性(或方法)将使您能够在以后发展类并更改ivar,但同时保持属性不变(例如使其成为计算属性)。它还允许子类重写您的属性并继续工作。 (顺便说一句,在某些情况下,引用属性语法是有帮助的,例如在写入到ivar时。在这种情况下,对copy_retain的属性支持有助于释放上一个对象,并获得正确的retain/release调用顺序) |
2
0
你说的是课外活动还是室内活动?如果没有,则始终使用访问器。首先,objc中ivar的默认可见性是
如果你在课堂上谈论,你不会
有
使用访问器,但如果设置
实际上,访问器并没有变异器那么重要,因为变异器常常做不止一件事。使用getter(类外)和setter是一种很好的实践。 |
3
0
我决定总是使用[自ivar],而不是直接使用ivar,即使我使用标准的objc括号符号,而不是点符号。唯一的例外是,如果[self ivar]是一个懒惰的加载访问器,并且我已经在方法中使用了它,并且我知道它已经初始化,我不想再检查在方法中使用它10次是否为零。 |
Mee · C#访问器和对象类继承 6 年前 |
user9206222 · 使用类[错误]ld返回1个退出状态 6 年前 |
Lolo · Laravel 5.4+:上传图像的变异器/访问器 7 年前 |
Estecka · 原型化所有可能子属性的访问器 8 年前 |
tom19830924 · 具有属性的自定义或重写访问器 10 年前 |