iOS Swift4-重新初始化惰性变量

iOS Swift4-重新初始化惰性变量,ios,swift,lazy-initialization,Ios,Swift,Lazy Initialization,有没有基于当前语言重新初始化惰性变量的方法 lazy var localizableDictionary: NSDictionary! = { guard let path = Bundle.main.path( forResource: "Localizable", ofType: "strings", inDirectory: nil, forLocalization: Localizer.shared.currentL

有没有基于当前语言重新初始化惰性变量的方法

lazy var localizableDictionary: NSDictionary! = {
    guard let path = Bundle.main.path(
        forResource: "Localizable",
        ofType: "strings",
        inDirectory: nil,
        forLocalization: Localizer.shared.currentLanguage)
    else {
        fatalError("Localizable file NOT found")
    }

    return NSDictionary(contentsOfFile: path)
}()

它是一个
lazy var
显然它是一个变量,所以Swift不会阻止你在任何时候修改它的值,如果有必要的话

你可以在任何时候简单地说

guard let path = Bundle.main.path(
    forResource: "Localizable",
    ofType: "strings",
    inDirectory: nil,
    forLocalization: Localizer.shared.currentLanguage)
    else {
        fatalError("Localizable file NOT found")
}
self.localizableDictionary = NSDictionary(contentsOfFile: path)
FYI

惰性初始化(有时也称为惰性实例化或惰性 加载)是一种延迟创建对象或某些对象的技术 其他昂贵的过程,直到它的需要。在为iOS编程时, 这有助于确保您只在需要时使用所需的内存 你需要它

以上报价抄袭自

请不要以为lazy var是常量,如果您真的需要一个常量,您会马上选择让它:)


希望能有所帮助

@Anas Alhasani:很高兴我能帮上忙:)编码愉快:)