2012-07-07 17 views
19

Burada temel bir şey eksik. Onu unutmuş olmalı. Ama temel olarak, bir NSNumber almak, onu şamandıra dönüştürmek, 2 ile çarpmak ve bir NSNumber sonucunu döndürmek için aşağıdaki kod var. Son adımda bir hata alıyorum ve güldüm. Orada ne yapmalıyım?Çevrimiçine dönüştürme 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 

cevap

43

NSNumber ait floatValue parametre almaz yöntemi.

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

veya

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

neden @ (myfloatvalue) kullanılmıyor? –

+0

@ JulianKról Teşekkürler! Bu cevap '@ (...)' sözdizimi tanıtılmadan bir yıldan fazla yazılmıştır. Yeni sözdizimini yansıtacak şekilde güncelledim. – dasblinkenlight

+0

şimdi çok daha iyi :) Bu yazılan cevapları kişisel olarak tutabilmenin bir sorun olduğunu, ancak bunu başarabileceğimiz bir topluluk olarak biliyorum. –

0

Swift 2.0 sürümü:

Yeni kayan sayı ayarlamak isterseniz NSNumber kesilebilir bir meslektaşı sahip olmadığından, sen testNSNumber yeniden atamanız gerekir
let testNSNumber: NSNumber = NSNumber(float: myfloatvalue) 
13

Swift 3.0:

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue) 
İlgili konular