【问题标题】:How is a global variable set to private understood in swift?如何快速理解将全局变量设置为私有?
【发布时间】:2017-03-21 22:53:38
【问题描述】:

我正在完成书中的核心数据练习,它开始创建一个单例的辅助类。我知道全局变量可以在类的范围之外创建,并且可以在整个项目中访问,但是我感到困惑的是书中的一个示例创建了一个全局变量并将其设置为私有。我假设通过将变量设置为私有,它只能由该特定类访问。这个私有全局变量是在辅助类之外创建的,所以我假设项目中的所有类都可以访问它,因此不需要 private 关键字。任何人都可以通过确认我的假设是否正确或不正确来提供帮助。

这是本书示例中的代码:

import Foundation

import CoreData


//this is a global variable accessible from any module or class
private let _sharedCDHelper = CDHelper()

class CDHelper: NSObject {

    // MARK: - SHARED INSTANCE
    class var shared: CDHelper {
        return _sharedCDHelper
    }
}

【问题讨论】:

    标签: swift core-data singleton


    【解决方案1】:

    Swift 中的私有全局变量是一个只能从声明它的文件中访问的全局变量。

    就在 Swift 中创建单例而言,您使用的这本书没有遵循当前的最佳实践(也许它有点过时了?)。

    不需要私有全局变量。你可以说:

    class CDHelper: NSObject {
    // MARK: - SHARED INSTANCE
        static let shared = CDHelper()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2019-06-05
      • 2023-03-14
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多