Vorrei sostituire le mie costanti di stringa globali con un enumerato annidato per le chiavi che sto utilizzando per accedere alle colonne in un database.Valore stringa di accesso in enum senza utilizzare rawValue
La struttura è la seguente:
enum DatabaseKeys {
enum User: String {
case Table = "User"
case Username = "username"
...
}
...
}
Ogni tabella nel database è un enum interna, con il nome della tabella di essere il titolo del enum. Il primo caso in ogni enumerazione sarà il nome della tabella, e i seguenti casi sono le colonne nella sua tabella.
Per utilizzare questo, è abbastanza semplice:
myUser[DatabaseKeys.User.Username.rawValue] = "Johnny"
Ma io userà queste enumerazioni un sacco. Dovendo aggiungere .rawValue
ad ogni istanza sarà un problema, e non è leggibile come mi piacerebbe che fosse. Come posso accedere al valore String senza dover utilizzare rawValue
? Sarebbe bello se posso fare questo:
myUser[DatabaseKeys.User.Username] = "Johnny"
Si noti che sto usando Swift 2. Se c'è un modo migliore per ottenere questo risultato mi piacerebbe sentirla!
Che tipo di oggetto è '' 'myUser'''? Un dizionario o il tuo oggetto con un pedice? –
@AndyIbanez Potrebbe essere un dizionario semplice, o un PFUser nel mio caso perché sto usando Parse – Joey