Brad의 CorePlot에서이 스 니펫을 보았습니다. 일부 커피가 필요하지 않았습니다. 지금은 완전히 깨어 :NSScanner는 NSDecimal을 검색하기위한 문자열을 어떻게 예상합니까?
NSDecimal result;
NSScanner *theScanner = [[NSScanner alloc] initWithString:stringRepresentation];
[theScanner scanDecimal:&result];
그리고 애플은 말한다 :
스캐너의 로케일이 문자열에서 값을 해석하는 방법에 영향을 미칩니다. 특히 에서 스캐너는 로케일의 소수 구분 기호 에 을 사용하여 부동 소수점 표현의 정수 및 분수 부분을 구별합니다. 새 스캐너의 로켈은 기본적으로 nil이므로 은 지역화되지 않은 값을 사용합니다.
So NSScanner 인스턴스를 만들고 로캘을 제공하지 않으면 일반 소스 코드로 입력 한 것처럼 문자열로 표시되는 십진수 값을 기대할 수 있습니까?
i.E. @ "- 59933845504572.944882211"또는 @ "123.456789"또는 @ "145.002e33"또는 @ "145.002e-33"? 그것이 맞을까요?
감사합니다. 한 가지. 설명서에 "새로운 스캐너의 로켈은 기본적으로 nil이 아니기 때문에 로컬 화되지 않은 값을 사용하게됩니다." 스캐너가 사용자 로케일에 상관없이 하드 코딩 된 문자열에 대해 작동한다는 것은 아닙니다. 아니면 예를 들어 미국 로켈을 지정하는 것이 더 안전합니까? –
나는 모른다. iPhone Simulator (또는 Mac)에서 미국 및 독일 로켈에서 응용 프로그램을 실행하고 소수점 구분 기호의 변경 사항을 문제없이 처리하는지 확인하여이를 테스트 할 수 있습니다. –
좋은 아이디어. 새로운 단어 "장애"를 배웠습니다. 그것도 주셔서 감사합니다 ;-) –