这两者之间的区别是什么?
var sharedContextA: NSManagedObjectContext {
return CoreDataStackManager.sharedInstantce().managedObjectContext
}
var sharedContextB = {
return CoreDataStackManager.sharedInstantce().managedObjectContext
}()
澄清一下,我看到了:
var variable: Type {
code
return X
}
但我不知道这个名称或它与前者的不同之处:
var variable = {
code
return X
}()
答案 0 :(得分:1)
sharedContextA
是计算属性。每次调用属性的getter时,都会计算要返回的值。
sharedContextB
使用闭包为属性指定默认值。在属性所属类型的初始化期间执行一次闭包,然后直接读取存储的值。