J'ai regardé d'autres réponses et les docs. Peut-être qu'il me manque quelque chose, ou peut-être que j'ai un autre problème. J'essaie d'enregistrer un numéro en quittant l'application, puis lorsque l'application est chargée, je veux vérifier si cette valeur existe et prendre des mesures en conséquence. Voilà ce que j'ai essayé:NSUserDefaults: numéro enregistré Toujours 0, iPhone
Pour enregistrer à la sortie:
- (void)applicationWillTerminate: (UIApplication *) application
{
double save = [label.text doubleValue]; // This could be the issue
//double save = 3.5; // This works, it saves the value and loads it fine, so that is not the problem here.
[[NSUserDefaults standardUserDefaults] setDouble: save forKey: @"savedNumber"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Pour vérifier:
- (IBAction)buttonclickSkip{
double save = [[NSUserDefaults standardUserDefaults] doubleForKey: @"savedNumber"];
if (save == 0) {
[self performSelector:@selector(displayAlert) withObject:nil];
test.enabled = YES;
test.alpha = 1.0;
skip.enabled = NO;
skip.alpha = 0.0;
}
else {
label.text = [NSString stringWithFormat:@"%.1f %%", save];
}
}
Le problème est que je reçois toujours mon message d'alerte affiché, la valeur enregistrée est pas mis dans l'étiquette si en quelque sorte == 0 est toujours vrai. Pourquoi:
double save = [label.text doubleValue];
Toujours zéro? Avant de fermer l'application, le nombre dans cette étiquette est d'environ 0,5% (cela varie). Si cela fait une différence, je l'ai testé sur le simulateur iPhone.
Un grand merci,
Stu
Définissez un point d'arrêt dans 'applicationWillTerminate:'. Quelle est la valeur de 'label'? Est-ce que c'est «nul»? Et comme le demande Pheelicks, quelle est la valeur de 'save'? –
Le point d'arrêt n'est pas atteint. applicationWillTerminate est dans mon apploadViewController.m ... est-ce correct? – Stumf
Jlehr m'a battu à ma prochaine question (et pourquoi je demandais plus d'informations d'abord) –