Создаю викторину. Вот часть моего кода:Сохранить данные с помощью NSUserDefaults
- (void) viewDidLoad
{
logos = [[NSMutableArray alloc] init];
[logos addObject:@"adidas"];
[logos addObject:@"nike"];
[logos addObject:@"puma"];
[self showLogo];
}
int currentQuestionIndex;
- (void) showLogo
{
currentQuestionIndex++;
NSString *question = [logos objectAtIndex:currentQuestionIndex];
[_questionImage setImage:[UIImage imageNamed:question]];
...
}
Если пользователь выберет правильный ответ, «showLogo» будет называться снова, чтобы перейти к следующему вопросу. Итак, уровень завершен.
Все работает отлично.
Пожалуйста, помогите мне сохранить информацию/уровни. Уровень IF завершен, когда пользователь запускает игру, он должен начать с сохраненного уровня.
Это то, что я уже пробовал:
- (void) checkAnswer
{
///... if user answered right
[[NSUserDefaults standardUserDefaults] setInteger:currentQuestionIndex forKey:@"currentLevel"];
[self showLogo];
/// so, I tried to save "currentQuestionIndex" forKey currentLevel, and call "showLogo"
}
и здесь модифицирована «showLogo»
- (void) showLogo
{
int savedLevel = [[NSUserDefaults standardUserDefaults] integerForKey:@"currentLevel"];
currentQuestionIndex = savedLevel+1 ;
NSString *question = [logos objectAtIndex:currentQuestionIndex];
[_questionImage setImage:[UIImage imageNamed:question]];
...
}
но не работает .. используя этот метод, я пытался сохранить счет, и он также работает.
Помогите пожалуйста. Спасибо
Я попробовал код в своем ответе, и он работает. – tolgamorf
Я думаю, что проблема в моих строках. Он работает, но когда я снова запускаю приложение, каждый раз, когда мой уровень увеличивается, чтобы не отвечать на вопрос. :) Итак, мои NSUserDefaults сохраняют текущий уровень. Когда я перезапущу приложение, мой код будет читать NSUserDefaults ++ и автоматически перейти на следующий уровень, а также сохранить текущий уровень и снова ... –