2012-07-07 12 views
19

Brakuje mi czegoś podstawowego, tutaj. Musiał o tym zapomnieć. Zasadniczo mam następujący kod, aby użyć NSNumber, przekonwertować go na float, pomnożyć przez 2 i zwrócić wynik do NSNumber. Dostaję błąd na ostatnim kroku i jestem zakłopotany. Co powinienem tam zrobić?Konwersja na numer 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 

Odpowiedz

43

Sposób floatValue z NSNumber nie bierze parametry. Jeśli chcesz ustawić nowy numer pływaka, należy ponownie przypisać testNSNumber, ponieważ NSNumber nie posiada zmienny odpowiednika:

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

lub

wersję
testNSNumber = [NSNumber numberWithFloat: myfloatvalue]; // The old syntax 
+1

dlaczego nie używać @ (myfloatvalue)? –

+0

@ JulianKról Dzięki! Ta odpowiedź została napisana ponad rok przed wprowadzeniem składni "@ (...)". Zaktualizowałem go, aby odzwierciedlał nową składnię. – dasblinkenlight

+0

o wiele lepiej :) Wiem, że problem z utrzymywaniem nowych odpowiedzi jest problemem osobiście, ale jako społeczność możemy to osiągnąć. –

0

Swift 2.0:

let testNSNumber: NSNumber = NSNumber(float: myfloatvalue) 
13

Swift 3.0:

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue) 
Powiązane problemy