2013-05-19 2 views
0

Я пытаюсь сохранить/загрузить некоторые данные для своей игры (в данном случае, количество подсказок, доступных игроку для них). Если они играют в игру в первый раз, они получают 10 советов, чтобы начать, в противном случае он загрузит количество советов, которые у них были до того, как они выйдут из игры. Моя проблема заключается в том, что при запуске игры в первый раз, я устанавливаю несколько советов по 10, но UILabel отображает 0.Обновление UILabel от NSUserDefaults

Это здесь мои сохранения и загрузки методы:

- (void)saveSettings 
{ 
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
    [settings setInteger:self.tipCount forKey:@"tipCount"]; 
} 

- (void)loadSettings 
{ 
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
    if (![settings boolForKey:@"userDefaultsSet"]) 
    { 
     [settings setBool:1 forKey:@"userDefaultsSet"]; 
     [settings setInteger:10 forKey:@"tipCount"]; 
     self.tipCount = 10; 
    } else { 
     self.tipCount = [settings integerForKey:@"tipCount"]; 
    }  
} 

И это вот как я обновляю свою метку:

- (void)updateLabel 
{ 
    Quiz* sharedQuiz = [Quiz sharedInstance]; 

    self.statusLabel.text = [NSString stringWithFormat:@"Tips Remaining: %d", [sharedQuiz tipCount]]; 
} 

Любая помощь, которая может указывать на меня в правильном направлении, оценивается. Заранее спасибо!

+0

После установки, '- synchronize' или постойте. Стойкость не происходит мгновенно. –

+0

откуда вы получаете данные из NSUserDefaults? – Balu

+0

http://stackoverflow.com/questions/15833907/adding-to-a-previously-saved-nsuserdefaults-in-xcode/15834362#15834362 – Balu

ответ

0

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

Проверьте вы звоните loadSetting перед вызовом метода (метод saveSettings и updateLabel метод), с помощью которого вы хотите отобразить некоторые information.look вы не установить любое значение любой другой способ, кроме советов рассчитывать от этого единственного метода (loadSetting) если этот метод не отклоняется, это означает, что вы получаете это 0 number по адресу UILabel. Так что вы должны позаботиться об этом, независимо от того, правильно ли вы назвали метод loadSetting, прежде чем показывать подсказки для пользователя по UILabbel. После того, как вы просмотрели свой код, похоже, что вы сделали все правильно, как и следовало сделать.

Вы можете проверить это, но установить точку прерывания в нужном месте и проверить основную причину этого.

Я надеюсь, что это может поможет вам и может дать какие-либо идеи, так что вы можете получить некоторую помощь форму выше

+0

Я сделал то, что вы предложили, и в сочетании с ответами выше я смог получить обновление 0 до 10, но только в отладчике. По какой-то причине мой UILabel по-прежнему не обновляет себя, даже если сама переменная равна 10 при вызове строки обновления. – user1843954

+0

@ user1843954 im pretty Конечно, нет никакой проблемы в этой части кода, показанной здесь в SO.Проверьте, правильно ли вы создали «общий (одиночный) класс Quiz» или нет. Чтобы иметь похожий поиск, как создать класс singleton в ios sdk.don't, если вы уже знаете, но все же вы должны снова проверить свой класс singleton – Kamarshad

Смежные вопросы