Я посмотрел на другие ответы и документы. Может быть, я что-то упустил, или, может быть, у меня есть другая проблема. Я пытаюсь сохранить число при выходе из приложения, а затем, когда приложение загружено, я хочу проверить, существует ли это значение, и принять соответствующие меры. Вот что я попробовал:
Для экономии при выходе:
- (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];
}
Для проверки:
- (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];
}
}
Проблема в том, что у меня всегда отображается предупреждение, сохраненное значение не помещается в метку, поэтому как-то == 0 всегда верно. Почему бы:
double save = [label.text doubleValue];
всегда равен нулю? Прежде чем закрыть приложение, число в этом ярлыке составляет примерно 0,5% (оно варьируется). Если это имеет какое-то значение, я проверяю это на симуляторе iPhone.
Большое спасибо,
Stu