Подтвердить что ты не робот

Преобразование 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
4b9b3361

Ответ 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)