NSNumber和浮动?

Ada*_*ite 2 iphone floating-point cocoa-touch objective-c nsnumber

我试图将NSNumber设置为使用NSUserDefaults加载的浮点值但我收到错误.我不明白为什么......?

这是我的代码:

[settingsData.sensitivitySettingValue floatValue] = [[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"];
Run Code Online (Sandbox Code Playgroud)

如果我自己使用浮动(即 float myFloat = [[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]

,但我想要所有视图控制器都可用的值,所以我在模型类中将它定义为NSNumber.

那么,请任何人能够告诉我为什么这个声明不起作用?

Sen*_*ior 5

看起来你正试图将一个变量分配给一个getter方法,从你的语法来判断.floatValue做什么?返回一个值还是分配一个?


Rah*_*rma 5

将settingsData作为datamodel类的对象,其中sensitivitySettingValue是一个声明为NSNumber的变量,使用的东西为

[settingsData.sensitivitySettingValue floatValue]

实际上获取其值而不是为其设置浮点值.您可以使用点符号,例如 settingsData.sensitivitySettingValue = [NSNumber numberWithFloat:[[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]];

或者像

[settingsData setSensitivitySettingValue:[NSNumber numberWithFloat:[[NSUserDefaults standardUserDefaults] floatForKey:@"sensitivityKey"]]];
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你