代码之家  ›  专栏  ›  技术社区  ›  K.K.D

是否应该将用户默认值声明为变量?

  •  -1
  • K.K.D  · 技术社区  · 6 年前

    我担心是否应该将userdefaults声明为变量,或者不象下面的代码那样:

    A型

    let userDefaults = UserDefaults.standard
    
    if let userDefaults.object(forKey: "isFirstLaunch") {
    
    }
    

    模式B

    if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
    
    }
    

    哪种方法最好,这两种方法有什么区别?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Dharmesh Kheni Steve Rosenberg    6 年前

    两者都是正确的使用方法 UserDefaults 这取决于你的要求,比如你可以在哪里使用 Pattern A Pattern B 如果你想用的话 UserDefaults.standard 你的很多地方 ViewController 那么你可以申报

    let userDefaults = UserDefaults.standard
    

    在你的方法之外,在你的 UIViewController 类或您可以将其声明为全局,并且可以在项目的任何位置使用它。

    但是如果你没有太多的使用它,那么你就可以使用它

    if let UserDefaults.standard.bool(forKey: "isHardModeEnabled") as Bool {
    
    }
    
        2
  •  0
  •   Rajender Kumar    6 年前

    这两种方法都是正确的,您可以在任何您想要的地方使用,除了模式A中定义了一个额外的变量。

    SwiftyUserDefaults 用于nsuserdefaults的现代swift API。

        3
  •  0
  •   Lal Krishna    6 年前

    实际上两者都是一样的。

    UserDefaults.standard 将返回userdefaults的singleton实例。

    为了方便起见,您可以选择任何一种方法。

    如果需要经常使用用户默认值,可以缩短 用户默认值.标准 变为变量。

    let userDefaults = UserDefaults.standard
    
    if let defaults.object(forKey: "isFirstLaunch") {
    
    }