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