Вот что я пробовал

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
        [prefs setInteger:HighScore forKey:@"integerkey"];
        [prefs synchronize];

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
HighScore = [prefs integerForKey:@"integerKey"];

Неявное преобразование теряет целочисленную точность: NSInteger (также известное как long) в int.

0
user3023743 28 Дек 2013 в 13:55

2 ответа

Лучший ответ

На 64-битных платформах NSInteger - это 64-битное количество, а int - только 32-битное.

Я предполагаю , что вы заявили

int HighScore;

Так что вы можете изменить это на

NSInteger HighScore;

Или добавить явное приведение

HighScore = (int)[prefs integerForKey:@"integerKey"];

Решить проблему.

1
Martin R 28 Дек 2013 в 09:59

Преобразуйте его в NSNumber, потому что NSInteger не является объектом. И сохраните этот объект по умолчанию.

0
HereTrix 28 Дек 2013 в 09:57