2011-10-16 77 views
2

我有一些問題,使用'initWithFormat創建一個字符串。下面是我使用的代碼:我希望speedLabel是這樣的NSString initWithFormat產生值與(空)

- (void)convertSpeedUnits 
{ 
    NSString *speedUnits = [[NSUserDefaults standardUserDefaults] stringForKey:kSpeedUnits]; 
    double speed; 
    if ([speedUnits isEqualToString:@"Knots"]) 
    { 
     speed = ms2knots(currentSpeedMS); 
    } 
    else if ([speedUnits isEqualToString:@"MPH"]) 
    { 
     speed = ms2kph(currentSpeedMS);    
    } 
    else if ([speedUnits isEqualToString:@"KPH"]) 
    { 
     speed = ms2mph(currentSpeedMS); 
    } 

    NSString *speedLabel = [[NSString alloc] initWithFormat:@"%.2f %s", speed, speedUnits]; 
    currentSpeed.text = speedLabel; 
    [speedLabel release]; 
} 

...

'1.12結' 或 '1.12 MPH' 或 '1.12 KPH'

然而就是我得到的是以下

'1.12(null)的

回答

9

speedUnits是一個的NSString,所以你應該使用%@和不是%s

NSString *speedLabel = [[NSString alloc] initWithFormat:@"%.2f %@", speed, speedUnits];