+(const char /*wchar_t*/ *)wcharFromString:(NSString *)string
{
return [string cStringUsingEncoding:NSUTF8StringEncoding];
}
它会返回char还是wchar_t?
从方法名称,它应该返回wchar_t,但为什么围绕wchar_t返回类型有注释?
来源在这里:
答案 0 :(得分:3)
该代码看起来不正确。他们声称它做了一件事,但它确实做了另一件事。返回类型是const char *。
答案 1 :(得分:1)
此方法不正确。它返回const char *
,编码为UTF8字符串。这是从NSString获取C字符串的一种非常明智的方法,但是这里任何人都无法使用wchar_t
来做任何事情。
wchar_t
是一个“宽字符”,指向它的指针将是一个“宽字符串”(由const wchar_t *
表示)。它们旨在精确地表示较大的字符集,并且可以是两字节宽的字符串;他们使用一整套不同的字符串操作函数来处理它们。 (这样的字符串在iOS开发中很少见,因为它值得。)