这个返回参数意味着什么?

时间:2013-08-04 03:18:00

标签: ios objective-c

+(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?

2 个答案:

答案 0 :(得分:3)

该代码看起来不正确。他们声称它做了一件事,但它确实做了另一件事。返回类型是const char *。

答案 1 :(得分:1)

此方法不正确。它返回const char *,编码为UTF8字符串。这是从NSString获取C字符串的一种非常明智的方法,但是这里任何人都无法使用wchar_t来做任何事情。

wchar_t是一个“宽字符”,指向它的指针将是一个“宽字符串”(由const wchar_t *表示)。它们旨在精确地表示较大的字符集,并且可以是两字节宽的字符串;他们使用一整套不同的字符串操作函数来处理它们。 (这样的字符串在iOS开发中很少见,因为它值得。)