我正在尝试将NSNumber设置为使用NSUserDefaults加载的浮点值但我收到错误。我不明白为什么......?
这是我的代码:
[settingsData.sensitivitySettingValue floatValue] = [[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"];
如果我自己使用浮点数(即float myFloat = [[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]
,但我希望所有视图控制器都可以使用该值,因此我已在模型类中将其定义为NSNumber。
那么,请有人能告诉我为什么这个陈述不起作用?
答案 0 :(得分:5)
看起来你正试图将一个变量分配给一个getter方法,从你的语法来判断。 floatValue做什么?返回一个值还是分配一个?
答案 1 :(得分:5)
将settingsData作为datamodel类的对象,其中sensitivitySettingValue是使用某些东西声明为NSNumber的变量
[settingsData.sensitivitySettingValue floatValue]
实际上获取其值而不是为其设置浮点值。您可以使用点符号,例如
settingsData.sensitivitySettingValue = [NSNumber numberWithFloat:[[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]];
或
之类的东西[settingsData setSensitivitySettingValue:[NSNumber numberWithFloat:[[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]]];
希望有所帮助
答案 2 :(得分:3)
答案 3 :(得分:2)
[settingsData.sensitivitySettingValue setFloatValue:[[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]];
确保settingsData.sensitivitySettingValue
支持setFloatValue
方法。
答案 4 :(得分:1)
如果你想从float创建NSNumber:
float myFloat = [[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"];
NSNumber *number = [NSNumber numberWithFloat:myFloat];
// settingsData.sensitivitySettingValue = number; - not sure in type of properties
NSUserDefaults也响应objectForKey
方法,你可以保存/加载NSNumber而无需强制转换