2012-07-07 4 views
19

저는 뭔가 기본적인 것을 놓치고 있습니다. 그것을 잊어 버린 것 같습니다. 하지만 기본적으로, 다음 코드는 NSNumber를 취하여 float로 변환하고 2로 곱하고 그 결과를 NSNumber로 반환합니다. 마지막 단계에서 오류가 발생하고 난처한 상태입니다. 나는 그곳에서 무엇을해야만 하는가?float를 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 

답변

43

NSNumberfloatValue이 매개 변수를 사용하지 않는 방법.

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

또는

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

@ (myfloatvalue)를 사용하지 않는 이유는 무엇입니까? –

+0

@ JulianKról 감사합니다! 이 답변은'@ (...) '구문이 도입되기 1 년 전에 작성되었습니다. 새로운 구문을 반영하도록 업데이트했습니다. – dasblinkenlight

+0

지금은 훨씬 나아졌습니다 :) 저는 게시 된 답변을 개인적으로 신선한 상태로 유지하는 것이 문제이지만 커뮤니티를 통해이 문제를 해결할 수 있음을 알고 있습니다. –

0

스위프트 2.0 버전 :

당신이 부동 소수점 수를 설정하려는 경우 NSNumber가 변경 가능한 대응이 없기 때문에, 당신은 testNSNumber을 다시 지정해야
let testNSNumber: NSNumber = NSNumber(float: myfloatvalue) 
13

스위프트 3.0 :

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue) 
관련 문제