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

pav*_*hra 2 objective-c

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

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

vad*_*ian 5

发生错误的原因是您将标量类型传递给需要对象的方法。

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

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

synchronize不需要。