2011-10-16 2 views
2

'initWithFormat'을 사용하여 문자열을 만드는 데 문제가 있습니다. 나는 speedLabel이 같은 것으로 기대(null)로 값을 생성하는 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 (널)'

답변

9

speedUnits가있는 NSString입니다 및 not %s :

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