NSUserDefaults 中的增量整数
Increment integer in NSUserDefaults
是否有更优雅的方法来增加存储在用户默认值中的计数器?
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(defaults.integerForKey("counter")+1, forKey: "counter")
不,但如果你经常这样做,它可能会成为一个很好的扩展,就像这样。
extension NSUserDefaults {
class func incrementIntegerForKey(key:String) {
let defaults = standardUserDefaults()
let int = defaults.integerForKey(key)
defaults.setInteger(int+1, forKey:key)
}
}
这样的用法
NSUserDefaults.incrementIntegerForKey("counter")
这与 Wezly 提供的解决方案相同,但它重用了我的全局 defaults
对象并允许我修改值。
extension NSUserDefaults {
func incrementIntegerForKey(key:String, by: Int) {
let int = integerForKey(key)
setInteger(int + by, forKey:key)
}
}
像这样使用(假设您已经在别处定义了默认值):
defaults.incrementIntegerForKey("counter", by: -3)
extension UserDefaults {
class func incrementIntegerForKey(key: String) -> Int {
let defaults = UserDefaults()
let int = defaults.integer(forKey: key)
defaults.setValue(int + 1, forKey: key)
return int + 1
}
}
Swift 5.1 也有 return 当前增量的值
是否有更优雅的方法来增加存储在用户默认值中的计数器?
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(defaults.integerForKey("counter")+1, forKey: "counter")
不,但如果你经常这样做,它可能会成为一个很好的扩展,就像这样。
extension NSUserDefaults {
class func incrementIntegerForKey(key:String) {
let defaults = standardUserDefaults()
let int = defaults.integerForKey(key)
defaults.setInteger(int+1, forKey:key)
}
}
这样的用法
NSUserDefaults.incrementIntegerForKey("counter")
这与 Wezly 提供的解决方案相同,但它重用了我的全局 defaults
对象并允许我修改值。
extension NSUserDefaults {
func incrementIntegerForKey(key:String, by: Int) {
let int = integerForKey(key)
setInteger(int + by, forKey:key)
}
}
像这样使用(假设您已经在别处定义了默认值):
defaults.incrementIntegerForKey("counter", by: -3)
extension UserDefaults {
class func incrementIntegerForKey(key: String) -> Int {
let defaults = UserDefaults()
let int = defaults.integer(forKey: key)
defaults.setValue(int + 1, forKey: key)
return int + 1
}
}
Swift 5.1 也有 return 当前增量的值