Swift 快速连接到CChar

Swift 快速连接到CChar,swift,string,Swift,String,如何在Swift中获得char/CChar?我需要调用以下方法: - (void)registerOption:(NSString *)longOption shortcut:(char)shortOption requirement:(GBValueRequirements)requirement; 我可以传递字符的ASCII格式,但这很烦人。有没有一种简单的方法可以获取字符串中某个索引处的字符?您可以将Swift字符串转换为Cstring,然后只获取第一个(也是唯一一个)字符: var c

如何在Swift中获得
char
/
CChar
?我需要调用以下方法:

- (void)registerOption:(NSString *)longOption shortcut:(char)shortOption requirement:(GBValueRequirements)requirement;

我可以传递字符的ASCII格式,但这很烦人。有没有一种简单的方法可以获取字符串中某个索引处的字符?

您可以将Swift字符串转换为Cstring,然后只获取第一个(也是唯一一个)字符:

var charString = "a"
var ccharOptional = charString.cStringUsingEncoding(NSUTF8StringEncoding)?[0]  // CChar?
var cchar = (charString.cStringUsingEncoding(NSUTF8StringEncoding)?[0])!       // CChar
使用Swift 3.0:

let cchar = "a".utf8CString[0]
(tho,不确定这实际上是什么时候引入的)

在swift3(3.0.2)中:
让cchar=“abc”.cString(使用:.utf8)
返回cchar数组。

使用Swift 5,您可以使用以下两种方法之一从
字符串实例获取
cchar
的集合


#1.使用
Swift
utf8CString
属性
String
有一个属性
utf8CString
具有以下声明:

var utf8CString: ContiguousArray<CChar> { get }
var utf8CString:ContiguousArray{get}
字符串的连续存储的以null结尾的UTF-8表示形式

下面的示例代码显示了如何使用
utf8CString


let string=“Café可能重复的不是
CString
,而是
CChar
有什么区别?C字符串是
char*
,而
CChar
char
,没有指针。a
char
是一个字符(一个字节),而
char*
是一个字符数组,一个字符串()@JoshTheGeek你能不能拿
CString
char*
)并拿数组中的第一个
char
?谢谢。可惜没有更简单/更漂亮的方法来做这件事。