Objective c 如何将整数值存储到目标c中的NSUserdefaults?

Objective c 如何将整数值存储到目标c中的NSUserdefaults?,objective-c,Objective C,我尝试了上面的代码,但是它显示了ARC不允许将“int”隐式转换为“id_nullable”之类的错误。有人可以建议我如何将int值存储在nsuserdefaults中吗 发生此错误是因为您正在将标量类型传递给需要对象的方法 有一种专门的方法,将值转换为预期类型是良好的编程习惯 int ramdomnumber = arc4random_uniform(900000) + 100000; [[NSUserDefaults standardUserDefaults] setObject:ramdo

我尝试了上面的代码,但是它显示了ARC不允许将“int”隐式转换为“id_nullable”之类的错误。有人可以建议我如何将int值存储在nsuserdefaults中吗

发生此错误是因为您正在将标量类型传递给需要对象的方法

有一种专门的方法,将值转换为预期类型是良好的编程习惯

int ramdomnumber = arc4random_uniform(900000) + 100000;
[[NSUserDefaults standardUserDefaults] setObject:ramdomnumber forKey:@"contactno"];
[[NSUserDefaults standardUserDefaults] synchronize];

不需要同步。

发生此错误是因为您正在将标量类型传递给需要对象的方法

有一种专门的方法,将值转换为预期类型是良好的编程习惯

int ramdomnumber = arc4random_uniform(900000) + 100000;
[[NSUserDefaults standardUserDefaults] setObject:ramdomnumber forKey:@"contactno"];
[[NSUserDefaults standardUserDefaults] synchronize];

不需要同步。

这里的问题是int不是一个对象,您应该做的是:

NSInteger ramdomnumber = (NSInteger)(arc4random_uniform(900000) + 100000);
[[NSUserDefaults standardUserDefaults] setInteger:ramdomnumber forKey:@"contactno"];
// [[NSUserDefaults standardUserDefaults] synchronize];

这里的问题是int不是一个对象,您应该做的是:

NSInteger ramdomnumber = (NSInteger)(arc4random_uniform(900000) + 100000);
[[NSUserDefaults standardUserDefaults] setInteger:ramdomnumber forKey:@"contactno"];
// [[NSUserDefaults standardUserDefaults] synchronize];

u可以使用NSNumber存储整数值,例如

int ramdomnumber = arc4random_uniform(900000) + 100000;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:ramdomnumber] forKey:@"contactno"];
[[NSUserDefaults standardUserDefaults] synchronize];
要返回整数,同样的方法

int ramdomnumber = arc4random_uniform(900000) + 100000;
 NSNumber *randomNo = [NSNumber numberWithInt: ramdomnumber]; 
[[NSUserDefaults standardUserDefaults] setObject: randomNo forKey:@"contactno"]; //save NSNumber instance not the int 
[[NSUserDefaults standardUserDefaults] synchronize];

u可以使用NSNumber存储整数值,例如

int ramdomnumber = arc4random_uniform(900000) + 100000;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:ramdomnumber] forKey:@"contactno"];
[[NSUserDefaults standardUserDefaults] synchronize];
要返回整数,同样的方法

int ramdomnumber = arc4random_uniform(900000) + 100000;
 NSNumber *randomNo = [NSNumber numberWithInt: ramdomnumber]; 
[[NSUserDefaults standardUserDefaults] setObject: randomNo forKey:@"contactno"]; //save NSNumber instance not the int 
[[NSUserDefaults standardUserDefaults] synchronize];

非常感谢,先生,我知道了&最好是安全使用-side@FahimParkar您是否也阅读了引用文档的答案?这表明它只在少数罕见的情况下才需要。非常感谢你,先生,我得到了它&最好是安全使用-side@FahimParkar您是否也阅读了引用文档的答案?它揭示了只有在少数罕见的情况下才需要它。int-ramdomnumer=arc4random_uniform900000+100000;[[NSUserDefaults standardUserDefaults]setObject:@ramdomnumber-forKey:@contactno];[[NSUserDefaults standardUserDefaults]同步];int ramdomnumber=arc4random_uniform900000+100000;[[NSUserDefaults standardUserDefaults]setObject:@ramdomnumber-forKey:@contactno];[[NSUserDefaults standardUserDefaults]同步];