iOS:当我尝试插入“int”值时NSUserDefaults警告

时间:2011-08-05 12:27:48

标签: ios warnings int nsuserdefaults

在我的应用程序中,我希望在某些时候保存NSUserDefaults中的“int”值,并且它向我发出警告:值不是“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 个答案:

答案 0 :(得分:4)

使用setInteger:forKey:代替setObject:forKey:。整数不是对象,它是基本类型。

然后,您可以使用integerForKey:检索它。

另一种选择是将整数包装成NSNumber对象。

答案 1 :(得分:0)

请尝试使用- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName或将 int 值包装到 NSNumber 中,这正是调试器想要的。