2
+(const char /*wchar_t*/ *)wcharFromString:(NSString *)string
{
    return  [string cStringUsingEncoding:NSUTF8StringEncoding];
}

char または wchar_t を返しますか?

メソッド名からすると、wchar_t を返すはずですが、wchar_t の戻り値の型についてコメントがあるのはなぜですか?

ソースはここにあります:

wchar_t を NSString に変換するには?

4

2 に答える 2

3

そのコードは間違っているように見えます。彼らはそれが 1 つのことを行うと主張していますが、実際には別のことを行います。戻り値の型は const char * です。

于 2013-08-04T03:23:02.457 に答える
1

この方法は正しくありません。const char *UTF8 文字列としてエンコードされた を返します。これは NSString から C 文字列を取得する完全に賢明な方法ですが、実際にwchar_ts を使って何かを行っている人はどこにもいません。

wchar_tは「ワイド文字」であり、それへのポインタは「ワイド文字列」( で表されるconst wchar_t *) になります。これらはより大きな文字セットを正確に表すように設計されており、2 バイト幅の文字列にすることができます。それらは、文字列操作関数のまったく異なるバリアント セットを使用して処理を行います。(このような文字列は、価値があるため、iOS 開発ではめったに見られません。)

于 2013-08-04T04:10:45.443 に答える