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

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

于 2013-08-04T03:23:02.457 回答
1

这种方法是不正确的。它返回一个const char *, 编码为 UTF8 字符串。这是从 NSString 获取 C 字符串的一种非常明智的方式,但是这里没有人真正用wchar_ts 做任何事情。

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

于 2013-08-04T04:10:45.443 回答