简体中文
O padrãoskit é uma biblioteca Swift leve que se baseia em codable para oferecer um invólucro simples , fortemente digitado e compacto para o UserDefaults. Com menos de 100 linhas de código, é fácil de usar e altamente eficiente.
Instalação >> instructions <<
Instanciar ou obter uma instância shared de Defaults
let defaults = Defaults ( ) // or Defaults.sharedEntão:
// 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
}Se você só precisar saber que existe um par de chave/valor, sem realmente usar o valor , use o método
has()em vez doget(for:key). Para objetos complexos, isso impedirá qualquer desserialização desnecessária.
Você pode encontrar um invólucro de conveniência para suas chaves, estendendo DefaultsKey . Isso permite que você use expressão implícita de membro:
// 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 keyPara armazenar um objeto complexo, basta estar em conformidade com o protocolo codável:
struct Person : Codable {
let name : String
let age : Int
}Então:
// 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 )E finalmente:
// Read it back
let person = defaults . get ( for : key )
person ? . name // Bonnie Greenwell
person ? . age // 80 Você também pode usar objetos aninhados, desde que eles estejam em conformidade com o protocolo 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 // catO padrãoskit é liberado sob a licença do MIT. Consulte a licença para obter detalhes.
Chinês é a linguagem falada nº 1 do mundo e eu adoraria que o padrão seja mais inclusivo, infelizmente não falo chinês. Se você conhece chinês e gostaria de ajudar, consulte a edição nº 1
Obrigado