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

Он возвращает символ char или wchar_t?Что означает этот параметр возврата?

от имени метода, он должен возвращать wchar_t, но почему есть комментарий вокруг типа возврата wchar_t?

Источник здесь:

How to convert wchar_t to NSString?

ответ

3

Этот код выглядит неправильно. Они утверждают, что это одно, но на самом деле это другое. Тип возврата - const char *.

1

Этот метод является неправильным. Он возвращает const char *, закодированный как строка UTF8. Это совершенно разумный способ получить строку C из NSString, но нигде здесь никто не делает ничего с wchar_t s.

wchar_t является «широким символом», а указателем на него будет «широкая строка» (представленная const wchar_t *). Они предназначены для точного представления больших наборов символов и могут быть двухбайтными символьными строками; они используют целый набор различных функций манипуляции строками, чтобы делать с ними что-то. (Такие строки очень редко встречаются в iOS-разработке, для чего это стоит.)

Смежные вопросы