Appleのドキュメントには次のように記載されています
文字列オブジェクトは、Unicode文字の配列として実装されます
ただし、舞台裏にあるunichar
可能性が高いデータ型のサイズは16ビットしかないため、すべてのUnicode文字を。で表すことは不可能です。これらの2つの事実を頭の中でどのように調整すればよいですか?unsigned short
unichar
Appleのドキュメントには次のように記載されています
文字列オブジェクトは、Unicode文字の配列として実装されます
ただし、舞台裏にあるunichar
可能性が高いデータ型のサイズは16ビットしかないため、すべてのUnicode文字を。で表すことは不可能です。これらの2つの事実を頭の中でどのように調整すればよいですか?unsigned short
unichar
Appleのドキュメントが実際にUTF-16コードポイントを意味するのにUnicode文字を誤って参照しているのは正しいです。
Unicodeの初期の頃は、16ビットを超えないことが期待されていましたが、そうなっています。一部の文字は代理ペアで表す必要がありますが、AppleとMicrosoft(およびおそらく他の文字)はどちらも16ビット整数を使用して「Unicode文字」を表します。
NSString
このケースを処理し(さらに文字を組み合わせて)、特定の文字の範囲を返すさまざまなメソッド。例-rangeOfCharacterFromSet:...
と-rangeOfComposedCharacterSequences...
。
unichar
文字列がデータ型で表されているかどうかはわかりません。「文字列オブジェクトはUnicode文字の配列として実装されます」とは、ソースコードに。として格納されていることを意味するものではありませんunichar *
。あなたはそれがどのように実行されるのか分かりませんね?unichar
、unsigned shortでない場合はどうなりますか?32ビットまたは64ビットのデータ型の場合はどうなりますか?