Преобразование float в NSNumber
Мне не хватает чего-то основного, здесь. Должно быть, забыл об этом. Но в основном, у меня есть следующий код, цель - взять NSNumber, преобразовать его в float, умножить на 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
Ответы
Ответ 1
Метод floatValue
of NSNumber
не принимает параметры. Если вы хотите установить новый номер с плавающей точкой, вам нужно повторно назначить testNSNumber
, потому что NSNumber
не имеет изменяемого экземпляра:
testNSNumber = @(myfloatvalue); // The new syntax
или
testNSNumber = [NSNumber numberWithFloat: myfloatvalue]; // The old syntax
Ответ 2
Swift 3.0:
let testNSNumber: NSNumber = NSNumber(value: myfloatvalue)
Ответ 3
Версия Swift 2.0:
let testNSNumber: NSNumber = NSNumber(float: myfloatvalue)