23

我在这里缺少一些基本的东西。应该是忘记了吧。但基本上,我有以下代码,目的是获取一个 NSNumber,将其转换为浮点数,将其乘以 2 并将结果返回给 NSNumber。我在最后一步遇到错误,我很难过。我应该在那里做什么。

NSNumber *testNSNumber = [[[NSNumber alloc] initWithFloat:200.0f] autorelease];
float myfloatvalue = [testNSNumber  floatValue] * -2;
NSLog(@" Test float value %1.2f \n\n",myfloatvalue);
[testNSNumber floatValue:myfloatvalue];  // error here is floatValue is not found
4

3 回答 3

50

floatValue的方法NSNumber不带参数。如果你想设置一个新的浮点数,你需要重新分配testNSNumber,因为NSNumber没有可变的对应物:

testNSNumber = @(myfloatvalue); // The new syntax

或者

testNSNumber = [NSNumber numberWithFloat: myfloatvalue]; // The old syntax
于 2012-07-07T01:44:22.147 回答
16

斯威夫特 3.0:

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue)
于 2016-09-18T14:25:18.470 回答
0

斯威夫特 2.0 版本:

let testNSNumber: NSNumber = NSNumber(float: myfloatvalue)
于 2016-01-23T21:58:34.517 回答