RCUserDefaults--用属性的方式存取数据
2019-03-26 本文已影响0人
小凉介
Overview
使用过UserDefault的都知道存取数据是像下面这样的:
UserDefaults.standard.set(1, forKey: "test")
UserDefaults.standard.value(forKey: "test")
这样一来接口看起来不够简洁,二来需要维护一堆Key
,受到GVUserDefaults的启发,直接用属性的方式来获取存取数据,我用Swift实现了RCUserDefaults。
Usage
通过给RCUserDefaults extension一些自己需要的属性,需要注意的这些属性需要用@NSManaged
修饰
extension RCUserDefaults {
@NSManaged var string: String
@NSManaged var stringOptional: String?
@NSManaged var bool: Bool
@NSManaged var int: Int
@NSManaged var double: Double
@NSManaged var float: Float
@NSManaged var data: Data
@NSManaged var dataOptional: Data?
@NSManaged var any: Any
@NSManaged var anyOptional: Any?
@NSManaged var array: [Int]
@NSManaged var arrayOptional: [Int]?
@NSManaged var dictionary: [String: Int]
@NSManaged var dictionaryOptional: [String: Int]?
}
可以像这样存数据
RCUserDefaults.standard.string = "string"
RCUserDefaults.standard.bool = true
RCUserDefaults.standard.int = 1
RCUserDefaults.standard.double = 1
RCUserDefaults.standard.float = 1.0
RCUserDefaults.standard.array = [1]
RCUserDefaults.standard.dictionary = ["test": 1]
像这样取数据
let string = RCUserDefaults.standard.string // "string"
let bool = RCUserDefaults.standard.bool // true
let int = RCUserDefaults.standard.int // 1
let double = RCUserDefaults.standard.double // 1
let float = RCUserDefaults.standard.float // 1.0
let array = RCUserDefaults.standard.array // [1]
let dictionary = RCUserDefaults.standard.dictionary // ["test": 1]
Performance
性能的话完全不用担心,几乎跟UserDefaults一模一样。
最后如果大家觉得不错的话,可以点个Star支持一下,QAQ。