swift - 这个花括号 block 在 var 声明之后做什么?

标签 swift

我正在查看这段 Swift 代码:

var modelController: ModelController {
    if _modelController == nil {
        _modelController = ModelController()
    }
    return _modelController!
}

var _modelController: ModelController? = nil

我感兴趣的是第一行:它声明了一个名为 modelController 的变量,类型为 ModelController,后面是一些用大括号括起来的代码,我认为它叫做Swift 中的闭包。

这个闭包有什么作用?什么时候执行?这个图案叫什么?我正在使用 Swift 3。

最佳答案

这叫做 computed property .您在此处看到的类型是只读计算属性。

每次您访问该属性(在本例中为 self.modelController)时,闭包都会运行,返回将用于该属性的值。

在给出的示例中,代码检查是否设置了另一个变量 _modelController,如果没有设置,则返回该值。这是一种在第一次访问对象时延迟加载对象的方式。

关于swift - 这个花括号 block 在 var 声明之后做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39661916/

相关文章:

swift - 在 UI View 之间进行分段和传输数据。 [ map 套件]

ios - 为什么 UIViewController 的 'view' 属性在 Swift 中不是可选的?

ios - 删除所有核心数据数据

IOS 分段控制 : Can't Change Selected Segment

ios - 使用 NSCoding 使用更多数组数据更新 iOS 存储的数据

arrays - 快速对字典数组进行排序并且获取运算符不能应用于任何

ios - NSLayoutConstraint 未分配给常量/变量

swift - 我可以在协议(protocol)上使用 Swift 的 map() 吗?

ios - 如何使 ScrollView 宽度 = 设备屏幕宽度?

swift - 在使用受限的应用程序中使用 API 的最佳方式?