0
예를 들어, 왜이 사용애플은 열거 형 대신 매개 변수로 NSString 객체를 사용하는 이유는 무엇입니까?
는 대신 이런 일의NSLocale *l = [[NSLocale alloc] [email protected]"en_US"];
: 그것은 엑스 코드에있는 NSString을 입력 할 때와 같은 많은 오류를 방지 할 수처럼
NSLocale *l = [[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifierUS];
것 같다,이 자동 고침은 없으며 Xcode는 자동 고침/자동 채우기 열거 형을 사용합니다. 또한, 열거 형 또는 상수를 통해 NSString을 사용하는 이유를 생각할 수 없습니다. 예를 들어, 새 버전의 SDK가 출시되면 Apple은 새 식별자를 추가 할 수 있지만 열거 형을 사용하여이를 수행 할 수도 있습니다.
NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
가 문자열을 사용하는 경우 :
if(userIdentifier == NSLocaleIdentifierUS) {
//English!
}
은 또한, 다른 방법을 위해, 애플은 매개 변수로 열거 나 특정 개체를 사용하여 문자열 상수를 통해 열거의 또 다른 장점은 열거 더 쉽게 비교 될 수 있다는 것입니다 localeIdentifier에 대해 다음을 수행하십시오.
NSData *data = [aString dataUsingEncoding:@"ascii"];
단순히 일관성이없는 것처럼 보입니다.
저는 이것이 사과에 의해 정의되지 않은 ISO 표준이므로 사용자가 익숙해지기를 바랍니다. – mkral
아마도 그것은 옳은 일입니다. 많은 웹 서비스가 표준을 사용하기 때문에 문자열로받을 때이를 열거 형으로 파싱하는 번거 로움을 덜어줍니다. – borrrden
또한 수백 개의 로케일이 있습니다. ** en **에만 많은 것들이 있습니다. ** en_US_POSIX **와 같은 모든 변형을 더합니다. 로케일 목록은 시간이 지남에 따라 변경됩니다. 더 많은 열거 형을 추가하는 것이 힘들 것입니다. – rmaddy