Swift NSUserDefaults setString:forKey:?
NSUserDefaults a integerForKey:
, setInteger:forKey:
et stringForKey:
, mais n'a pas setString:forKey:
.
Comment définissez-vous un string à NSUserDefaults? Il a setObject:forKey:
mais, dans Swift, la Chaîne est une struct. Est-il possible d'utiliser setObject:forKey:
pour stocker une chaîne de caractères?
setObjectForKey
OriginalL'auteur Yoichi Tagaya | 2015-03-18
Vous devez vous connecter pour publier un commentaire.
La raison que setObject peut être utilisé pour appliquer une chaîne est trouvée dans la discussion de la référence:
Depuis Swift Chaîne est relié à NSString, l'utilisation de setObject est valide. Cependant, comme les autres types mentionnés ne sont pas acceptés dans NSUserDefaults à l'aide de la setObject setter; ils ont leur propre convenance setters.
Malgré cela, presque rien, on peut penser peut être sérialisé et placé dans NSUserDefaults à l'aide de setObject avec un NSData argument (comme indiqué ailleurs sur).
OriginalL'auteur Tommie C.
mise à jour: Xcode 7.0.1 • Swift 2.0
La bonne chose à propos de Swift, c'est qu'il vous permet d'étendre facilement la langue. Vous pouvez créer votre propre setString(forKey:), setDate(forKey:), etc... la création d'un NSUserDefaults extension comme suit:
OriginalL'auteur Leo Dabus
Swift 3 supprimé
.setObject
. Utilisation.set
à la place. Par exemple:Ce propos de la récupération de la valeur avec des valeurs par défaut.chaîne(forKey: "savedString")? Qui semble fonctionner.
grand point. Je ne sais pas pourquoi j'ai fait ça comme ça au départ. Édité.
OriginalL'auteur Daniel Storm
Vous pouvez certainement utiliser
setObject:forKey:
, leNSDictionary
méthode ou mêmesetValue:forkey:
qui est unKVC
méthode.Cela fonctionnera parfaitement.
OriginalL'auteur Gil Sand