2010-08-06 7 views

Répondre

1

Vous voulez faire quelque chose comme ceci:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSInteger counter = [defaults integerForKey:@"counterKey"]; 
counter++; 
[defaults setInteger:counter forKey:@"counterKey"]; 

Cela fonctionne également si la clé n'a jamais été enregistrée. integerForKey retournera juste 0, ce qui est réellement ce que nous voulons. Cependant, si vous voulez être très sécurisé, vous pouvez le vérifier à l'avance. après la deuxième ligne par quelque chose comme ceci:

NSInteger counter = 0; 
if ([defaults objectForKey:@"counterKey"] != nil) 
    counter = [defaults integerForKey:@"counterKey"]; 
+0

c'est tellement utile merci. Une autre question, est la valeur par défaut des entiers zéro dans le standardUserDefaults? – SammmyC

+0

La raison pour laquelle je demande est que je veux que l'entier soit zéro la première fois que je l'ouvre, et pour l'incrémenter à chaque ouverture suivante.thx – SammmyC

+0

Vous devez enregistrer la valeur 0 avant de lire la valeur en utilisant le code ci-dessus. Consultez la documentation pour: - (void) registerDefaults: (NSDictionary *) dictionnaire –

1

Stockez l'entier dans NSUserDefaults. La documentation est here.

1

Pendant que vous pourrait utiliser NSUserDefaults cette façon est pas la solution la plus élégante.

Les paramètres par défaut sont un endroit pour conserver l'application paramètres pas l'application données. Un bon conseil est de penser à votre élément de données comme apparaissant dans les paramètres de votre application et si elle est valide là. Dans votre cas, le nombre de fois que l'application a été ouverte n'est pas un paramètre utilisateur; ce n'est pas quelque chose que l'utilisateur pourra changer, n'est-ce pas?

Un meilleur moyen serait d'écrire les données à un plist, qui est un moyen simple et rapide de stocker des données d'application. Jetez un oeil aux instructions here par exemple (il y en a d'autres disponibles avec une recherche rapide), ce qui devrait vous aider à démarrer.

Questions connexes