iOS: предупреждение NSUserDefaults при попытке вставить значение «int» - PullRequest
0 голосов
/ 05 августа 2011

В моем приложении я хочу в какой-то момент сохранить значение "int" в NSUserDefaults, и оно дает мне предупреждение о том, что значение не относится к типу "id" и не равно "int". я не получаю это предупреждение, если я пытаюсь вставить строку NSString.

Вот подробности.

Код, который я написал:

int currentCategoryForUserDefaults = currentCategory; //"cuurentCategory" is an enum value.

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:currentCategoryForUserDefaults forKey:@"currentCategoryForUserDefaults"];

Предупреждение, которое я получаю (для 3-й строки):

Semantic Issue : Incompatible integer to pointer conversion sending 'int' to parameter of type 'id'

Любой

Ответы [ 2 ]

4 голосов
/ 05 августа 2011

Используйте setInteger: forKey: вместо setObject:forKey:.Целое число не является объектом, это примитивный тип.

Затем вы можете получить его с помощью integerForKey: .

Другой вариант - заключить ваше целое в NSNumber объект.

0 голосов
/ 05 августа 2011

Попробуйте использовать - (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName вместо этого или оберните значение int в NSNumber , и это будет именно то, что от вас хочет отладчик.

...