2014-07-09 3 views
-5

나는 앱 버전을 가져 와서 그 값을 double로 변환하는 시나리오가 있습니다. 내 JSON의 값은 '1.0.0'형식이므로 두 번 변환하면 '1.0.0'대신 '1'이 표시됩니다. 문자열을 부동 소수점 값으로 변환하는 방법

double appVersion = [[[[NSBundle mainBundle] infoDictionary] 
     objectForKey:@"CFBundleVersion"] doubleValue]; 
NSLog(@"%f",appVersion); 

어떻게 내 double 값에 '1.0.0'를 얻을 : 이 내 코드입니다. 감사합니다.

+8

"1.0.0"은 어떻게 이중으로 해석 될 수 있습니까 ??? –

+1

어쨌든 왜 더블로 변환합니까?! – Vatev

답변

4

앱 버전의 형식은 부동 소수점 숫자가 아닌 major.minor.patchlevel입니다. 대신 완전한 문자열을 읽고 구성 요소를 나눠야합니다.

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] 
     objectForKey:@"CFBundleVersion"]; 
NSArray *components = [appVersion componentsSeparatedByString:@"."]; 
NSAssert([components count] == 3, @"Something bad happened"); 
unsigned major = [components[0] unsignedValue]; 
unsigned minor = [components[1] unsignedValue]; 
unsigned patchlevel = [components[2] unsignedValue]; 
관련 문제