#objective-c
#objective-c
Вопрос:
При записи в NSUserDefaults возникает ошибка.
Поток 1: EXEC_BAD_ACCESS(код = 1, адрес = 0x2166b8f5)
У меня есть Google, но я не могу найти никакой другой подсказки для решения.
моя версия iOS — 7.0.4, xcode — 5.1.1, мой исходный код выглядит так, как показано ниже.
CCLOG(@"%@",message);
NSNumber *highScore = [[NSUserDefaults standardUserDefaults] objectForKey:@"highscore"];
if (self.score > [highScore intValue]) {
// new highscore!
highScore = [NSNumber numberWithInt:self.score];
//something bad in this code.
[[NSUserDefaults standardUserDefaults] setObject:highScore forKey:@"highscore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Комментарии:
1. Зачем сначала создавать NSNumber? Выполняется ли это в основном потоке? Что такое self.score (определение и зарегистрированное значение)?
2. Какое значение имеет рекорд, если вы его регистрируете?
3. @JamalZafar согласно скриншоту, значение равно 4988.
4. Трассировка стека или «Включить объекты зомби» помогли бы: D