Objective c 如何将整数值存储到目标c中的NSUserdefaults?
我尝试了上面的代码,但是它显示了ARC不允许将“int”隐式转换为“id_nullable”之类的错误。有人可以建议我如何将int值存储在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
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]同步];