swift - 这两个属性有什么区别?

标签 swift swift2

这两个有什么区别?

var sharedContextA: NSManagedObjectContext {
    return CoreDataStackManager.sharedInstantce().managedObjectContext
}


var sharedContextB = {
    return CoreDataStackManager.sharedInstantce().managedObjectContext
}()

为了澄清,我已经看到:

var variable: Type {
    code
    return X
}

但我不知道它的名称或它与前者有何不同:

var variable = {
    code
    return X
}()

最佳答案

sharedContextA 是一个计算属性。每次调用属性的 getter 时都会计算要返回的值。

sharedContextB 使用闭包为属性分配默认值。闭包在属性所属类型初始化期间执行一次,之后直接读取存储的值。

关于swift - 这两个属性有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34519135/

相关文章:

ios - 如何在带有重复的 animateWithDuration 的每个动画之间更改 UILabel 的文本?

swift - 中止陷阱 : 6 in protocol extension with typealias definitions

从自动释放池中快速退出循环?

swift - 订阅 NSError 的 userInfo

ios - 如何为约束获取随机 CGFloat?

ios - Swift 3 - viewdidload 中的函数未完全执行

SwiftUI 预览版不适用于 Core Data

ios - 当单元格的元素的框架改变时更新 tableView

ios - 如何使用一对多关系将数据添加到核心数据?

ios - 错误: "Cannot assign a value of type String: UIColor? to a value of type String: AnyObject!"