たとえば、これを使用する理由:
NSLocale *l = [[NSLocale alloc] initWithLocaleIdentifier@"en_US"];
このようなものの代わりに:
NSLocale *l = [[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifierUS];
XcodeでNSStringを入力すると、オートコレクトはありませんが、Xcodeは列挙型をオートコレクト/オートフィルするため、多くのエラーを防ぐようです。さらに、列挙型や定数よりも NSStrings を使用する理由が思いつきません。たとえば、SDK の新しいバージョンがリリースされると、Apple は新しい識別子を追加できますが、列挙型でもこれを行うことができます。文字列定数に対する列挙型のもう 1 つの利点は、列挙型をより簡単に比較できることです。
if(userIdentifier == NSLocaleIdentifierUS) {
//English!
}
また、他のメソッドについては、Apple は列挙型または特定のオブジェクトをパラメーターとして使用します。
NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
localeIdentifier に文字列を使用している場合は、次のようにしてください。
NSData *data = [aString dataUsingEncoding:@"ascii"];
彼らは単に矛盾しているようです。