Небольшая проблема с приращением - PullRequest
1 голос
/ 19 мая 2011

просто небольшая проблема с инкрементным кодированием.

У меня есть эта и другие кнопки для добавления к общему счету:

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

Каждый раз, когда вы нажимаете кнопку, вы можете добавить 1, а затем у меня есть кнопка, которая сохраняет общий счет.

Когда я покидаю приложение и возвращаюсь, я могу снова загрузить общий счет, но как только я нажимаю кнопку, она начинается снова с 1, кто-нибудь знает, как я могу это изменить?T

Спасибо за вашу помощь.

Ответы [ 3 ]

2 голосов
/ 19 мая 2011

Если вы закроете приложение, вам нужно сохранить свои данные. Вы можете использовать этот код:

[[NSUserDefaults standardUserDefaults] setInteger:self.currentScore forKey:@"score"];
NSInteger score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];

В идеале вы должны использовать его только один раз при запуске приложения, но использование его каждый раз также работает, если производительность не имеет значения.

обновление Сохраните данные где-нибудь, чтобы они не перезагружались. Например, в вашем приложении-делегате, к которому вы можете получить доступ из любого места с помощью [[UIApplication sharedApplication] delegate] или поддерживать класс как единое целое с кодом, подобным:

+(MySharedDataClass *)singleton {
    static dispatch_once_t pred;
    static MySharedDataClass *shared = nil;
    dispatch_once(&pred, ^{
        shared = [[MySharedDataClass alloc] init];
    });
    return shared;
}

В противном случае класс, содержащий ваши значения, может быть выгружен.

1 голос
/ 19 мая 2011

Если вы хотите, чтобы оценка была постоянной, есть несколько способов сделать это, например, использовать plist. Смотрите это .

0 голосов
/ 19 мая 2011

Когда вы «... снова загружаете общий балл ...», вы уверены, что устанавливаете self.currentScore = self.totalScore; в viewDidLoad:?

Вы доказали, что снова загрузили общий балл с помощью перерывауказать или через логирование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...