静态类型的 NSUserDefaults,使用了subscript下标import UIKit


let keyPrefix = "me.fin.V2EXSettings."


class V2EXSettings: NSObject {

static let sharedInstance = V2EXSettings()

fileprivate override init(){

super.init()

}

subscript(key:String) -> String? {

get {

return UserDefaults.standard.object(forKey: keyPrefix + key) as? String

}

set {

UserDefaults.standard.setValue(newValue, forKey: keyPrefix + key )

}

}

}



调用的地方:


fileprivate static let STYLE_KEY = "styleKey"


fileprivate override init(){

if let style = V2EXSettings.sharedInstance[V2EXColor.STYLE_KEY] {

self.style = style

}

else{

self.style = V2EXColor.V2EXColorStyleDefault

}

super.init()

}