我正在从一本书中完成一项核心数据练习,并开始创建一个单独的辅助类。我理解全局变量可以在类的范围之外创建,并且可以在整个项目中访问,但是我感到困惑的是,本书中的一个示例创建了一个全局变量并将其设置为私有。我假设通过将变量设置为private,它只能访问该特定类。这个私有全局变量是在helper类之外创建的,所以我假设它可以被项目中的所有类访问,因此不需要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
}
}
答案 0 :(得分:2)
Swift中的私有全局变量是一个全局变量,只能从声明它的文件中访问。
你正在使用的书并没有遵循当前的最佳实践,只要在Swift中创建单例(也许它有点过时了?)。
不需要私有全局变量。你可以说:
class CDHelper: NSObject {
// MARK: - SHARED INSTANCE
static let shared = CDHelper()
}