快速将单个 c 字符转换为字符串

das*_*mum 3 string interop char swift

我正在尝试在我的 Swift 项目中使用 MailCore2(目标 C)。

目前,我尝试从服务器检索所有 IMAP 文件夹(到目前为止有效)并按分隔符分割路径。

INBOX.Sent
INBOX.Drafts
Run Code Online (Sandbox Code Playgroud)

INBOX
 > Sent
 > Drafts
Run Code Online (Sandbox Code Playgroud)

该类具有以下MCOIMAPFolder属性: . 如果我尝试打印它或使用它来分割路径:delimiterchar

print("\(folder.delimiter)\n")
var components = folder.path.componentsSeparatedByString(String.init(folder.delimiter))
for component in components {
    print("\(component)\n")
}
Run Code Online (Sandbox Code Playgroud)

它会打印

46
INBOX.Sent
Run Code Online (Sandbox Code Playgroud)

我在这里能找到的最接近的是Converting a C char array to a String但这似乎只适用于char[]而不是单个char.

那么我错过了什么?

Mar*_*n R 6

C 类型char映射到 Swift as CChar,它是 的别名Int8。您可以使用单个 C 字符创建 Swift 字符串

let delim = String(UnicodeScalar(UInt8(bitPattern: folder.delimiter)))
Run Code Online (Sandbox Code Playgroud)

这会将给定解释char为范围内的 Unicode 值 0 ... 255并将其转换为String.