Lorsque le rootViewController
de mon application est chargé, je souhaite pouvoir vérifier si les informations de connexion des utilisateurs ont été enregistrées ou non NSUserDefaults
.
Fondamentalement, lorsque l'utilisateur charge l'application et qu'il / elle n'a pas ses informations de connexion enregistrées, un modalAlertView
sera poussé et l'utilisateur pourra enregistrer ses informations d'identification de manière appropriée. Cela enregistre ces UITextField
chaînes dans un NSUserDefault
objet respectif . Cependant, est-il possible qu'une fois cette sauvegarde terminée, je puisse créer un NSUserDefault
objet booléen et changer la valeur en oui?
Cela signifie que le booléen est déjà défini sur non et que lorsque l'utilisateur enregistre ses informations de connexion, il change également le booléen en oui?
la source
Il existe une méthode
NSUserDefaults
appeléeregisterDefaults:
. Vous utilisez cette méthode pour définir les «valeurs par défaut» de votre application. Fondamentalement, vous créez unNSDictionary
contenant vos clés et valeurs par défaut (dans votre cas, un NON pour une clé «informations d'identification enregistrées»), et vous l'enregistrez à l'aide deregisterDefaults:
. Cela est souvent fait dans la+ (void)initialize
méthode du délégué d'application pour garantir que vos valeurs par défaut sont enregistrées avant qu'elles ne soient nécessaires. Ces valeurs ne sont utilisées que si votre application ne les a pas remplacées. En d'autres termes, elles ne seront utilisées que si la clé que vous recherchez ne se trouve pas dans le domaine d'application, c'est-à-dire que les valeurs par défaut de l'utilisateur sont lues à partir du fichier .plist de l'utilisateur.D'autre part, vous pouvez simplement vérifier les informations de connexion et afficher une alerte si elles sont manquantes. Cela élimine le besoin de garder votre valeur booléenne synchronisée avec les informations de connexion. Si vous fournissez par la suite une fonction de «suppression des informations de connexion», vous n'aurez pas à vous rappeler de remettre le booléen sur NO. Si vos informations de connexion sont enregistrées dans les paramètres par défaut de l'utilisateur, procédez comme suit:
la source
Cette solution, suggérée par Henrik P. Hessel:
fonctionnerait dans votre cas, mais gardez à l'esprit que vous ne devriez pas vérifier avec ce code si une clé est définie, car si elle est réellement définie et définie sur "NON", vous obtiendrez toujours un résultat comme si ce n'était pas le cas réglé du tout. Au lieu de cela, j'utiliserais
la source
Vous n'avez pas besoin de le définir d'abord sur
NO
, mais vous pouvez vérifier si une clé a été définie. Sinon, et si votre application détermine que les informations d'identification sont complètes, créez-la simplement et définissez-la surYES
.Vérifiez ma réponse à une autre question pour voir comment je le fais habituellement.
la source
dans Swift 3
alternativement, nous pouvons utiliser
object(forKey:)
puis le convertir en booléenla source
Swift 2.3
Pour stocker des valeurs
Pour récupérer des valeurs
Swift 3.0
Pour stocker des valeurs
pour récupérer des valeurs
la source