2014-05-19 1 views
1

간단히 [NSString stringWithFormat : @ "%. 5f, % .5f"];을 사용하여 CLLocations를 "75.45874, -45.17292"와 같이 쉼표로 구분 된 문자열로 변환합니다. 문자열을 소수점이있는 두 개의 숫자로 예상하는 내 서버 응용 프로그램으로 보내십시오.CLLocationCoordinates 위도/경도 값은 Locale Dependent입니까?

모든 문서를 읽은 후에는 좌표가 로케일에 종속적인지 아닌지를 알 수 없습니다. 예를 들어 사용자가 해외에 있었다면 (미국에있는 경우) 위치에 소수점 구분 기호로 쉼표 : "75,45874, -45,17292"?

필요한 경우 NSNumberFormatter를 사용하는 것과 같이 쉼표를 소수로 변환 할 수있는 몇 가지 다른 방법이 있습니다. 실제로 필요한지 아닌지 파악하려고합니다. 시뮬레이터를 사용하여 시뮬레이션 위치를 시도했지만 로캘 설정이 CLLocation의 위도/경도 속성으로 넘어가고 이러한 상황을 올바르게 에뮬레이션 할 수 있는지 여부는 알 수 없습니다. 어떤 통찰력?

답변

1

CLLocation의 좌표는 으로 정의되는 CLLocationDegrees으로 표시됩니다. 이것은 부동 소수점 숫자이며 로케일에 의존하지 않습니다.

도 로케일에 의존하지 않는

[NSString stringWithFormat:@"%.5f, %.5f", lat, lon] 

문자열을 만들기. stringWithFormat는 (거의)

이중 인수로 %f 변환을 정의하는 IEEE printf specification 스타일의 진수 표기로 변환해야한다 "[-] ddd.ddd"을 준수 ...,

코드에서 항상 을 소수 구분 기호로 생성합니다.

반면에 달리 지정하지 않는 한 NSNumberFormatter은 변환에 대해 사용자의 로캘 기본 설정을 사용합니다. 당신은 표준 "POSIX 로케일"에 로케일을 설정 한 경우 귀하의 경우에 사용할 수 있습니다 :

아름다운
NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init]; 
[myFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; 
+0

, 덕분 통찰력! – Mike