Сохранение счета в метке и загрузка при открытии приложения - PullRequest
0 голосов
/ 27 сентября 2011

Я устанавливаю «счетчик кликов» в своем приложении для iOS, чтобы пользователь знал, сколько раз он выполнял действие.Я использую NSUserDefaults, потому что не могу загрузить его при открытии приложения.

Сначала я создал UILabel, которая хранит число и увеличивает его каждый раз, когда пользователь нажимает на него:

 - (IBAction) increaseScore {
self.currentScore = self.currentScore + 1;
currentScoreLabel.text = [NSString stringWithFormat: @"%ld", self.currentScore];

 // Saving:

  NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
  [defaults setObject:currentScoreLabel.text forKey: @"Score"];
  [defaults synchronize]; }

Это нормально, ярлык увеличивается на +1 каждый раз, когда я нажимаю на кнопку.Не уверен, что сохраняет правильно, потому что когда я закрываю приложение открывается снова, оно не загружается, метка возвращается к нулю:

- (void)viewDidLoad {
   [super viewDidLoad];

currentScoreLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey: @"Store"];
}

Любые идеи ???

1 Ответ

1 голос
/ 27 сентября 2011

Похоже, у вас там опечатка.В вашем методе увеличенияScore вы устанавливаете объект для ключа «Score», а в своем viewDidLoad вы пытаетесь получить строку для ключа «Store».Облом, но я всегда пытаюсь настроить статическую NSString тех ключей, которые я использую по этой точной причине.Пример:

static NSString* kScoreKey = @"Score";

так вы звоните

[defaults setObject:currentScoreLabel.text forKey:kScoreKey];

и

currentScoreLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:kScoreKey];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...