GoZ*_*ner 18
Apple仍然_在其Xcode样板代码中使用它作为non-public变量的约定.你会看到这样的模式:
class Foo {
var _bar : Bar? = nil
var bar : Bar {
if _bar == nil {
/* compute some stuff */
_bar = Bar (/* ... */)
}
return _bar!
}
}
Run Code Online (Sandbox Code Playgroud)
其中对属性的访问是通过bar计算属性进行的.您可以在Apple CoreData模板中找到它.
zum*_*zum 14
在Objective-C中,当你声明一个属性@synthesize时会自动为clang 3.2创建getter和setter.因此,属性"foo"的默认@synthesize将如下所示:
@synthesize foo = _foo
因为_foo将是iVar.换句话说,你可以自己完成@synthesize,无论你喜欢什么,都可以调用iVar:
@synthesize foo = myiVarFoo
所以在这种情况下没有"_"
所以现在在文档中使用Swift :
Swift将这些概念统一到一个属性声明中.Swift属性没有相应的实例变量,并且不直接访问属性的后备存储.
因此,从文档中可以清楚地看出,swift没有相应的实例变量,因此不再需要"_".
下划线前缀意味着不要将实例变量_foo与其getter 混淆foo.
在快速的情况下,伊娃与吸气剂之间并没有这样的区别.相反,你只有属性,使得_约定不必要.
| 归档时间: |
|
| 查看次数: |
7784 次 |
| 最近记录: |