DefaultsKit
0.3.2
簡體中文
DefaultSkit是一個輕巧的Swift庫,它以Codable為基礎,為UserDefaults提供簡單,強烈鍵入和緊湊的包裝器。代碼少於100行,它既易於使用又高效。
安裝>> instructions <<
實例化或獲得Defaults的shared實例
let defaults = Defaults ( ) // or Defaults.shared然後:
// Define a key
let key = Key < String > ( " someKey " )
// Set a value
defaults . set ( " Codable FTW ? " , for : key )
// Read the value back
defaults . get ( for : key ) // Output: Codable FTW ?if defaults . has ( key ) {
// Do your thing
}如果您只需要知道存在鍵/值對而沒有實際使用該值,請使用
has()方法而不是可選的get(for:key)。對於復雜的對象,它將防止任何不必要的避難所化。
您可以通過擴展DefaultsKey來找到鑰匙的便利包裝器。這允許您使用隱式成員表達式:
// Extend with a custom key
extension DefaultsKey {
static var someKey : Key < Int > { Key ( " someKey " ) }
}
// Then use it like this
defaults . set ( " Some key " , for : . someKey )
defaults . get ( for : . someKey ) // Output: Some key要存儲複雜的對象,只需符合代碼協議:
struct Person : Codable {
let name : String
let age : Int
}然後:
// Create a key
let key = Key < Person > ( " personKey " )
// Get an instance of your Codable conforming enum, struct or class
let person = Person ( name : " Bonnie Greenwell " , age : 80 )
// Set the value
defaults . set ( person , for : key )最後:
// Read it back
let person = defaults . get ( for : key )
person ? . name // Bonnie Greenwell
person ? . age // 80您也可以使用嵌套對象符合Codable協議:
enum Pet : String , Codable {
case cat
case dog
}
struct Person : Codable {
let name : String
let pets : [ Pet ]
}
// Get a Codable conforming instante
let person = Person ( name : " Claire " , pets : [ . cat ] )
// Set the value
defaults . set ( person , for : key )
// And read it back
let person = defaults . get ( for : key )
person ? . name // Claire
person ? . pets . first // catDefaultSkit按MIT許可發布。有關詳細信息,請參見許可證。
中文是世界上排名第一的語言,我很想讓默認設備更具包容性,不幸的是我不會說中文。如果您知道中文,並且想提供幫助,請參閱第1期
謝謝