Swift 快速连接到CChar
如何在Swift中获得Swift 快速连接到CChar,swift,string,Swift,String,如何在Swift中获得char/CChar?我需要调用以下方法: - (void)registerOption:(NSString *)longOption shortcut:(char)shortOption requirement:(GBValueRequirements)requirement; 我可以传递字符的ASCII格式,但这很烦人。有没有一种简单的方法可以获取字符串中某个索引处的字符?您可以将Swift字符串转换为Cstring,然后只获取第一个(也是唯一一个)字符: var c
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
,没有指针。achar
是一个字符(一个字节),而char*
是一个字符数组,一个字符串()@JoshTheGeek你能不能拿CString
(char*
)并拿数组中的第一个char
?谢谢。可惜没有更简单/更漂亮的方法来做这件事。