Objective-C u_int8_t 数组 Swift

Objective-C array of u_int8_t in Swift

我需要在 Swift 中转换大量 Objective-C 代码。 其中之一是由中国工程师

创建的 (u_int8_t) 数组
u_int8_t blankBytes[] = {0x1b, '*', 'r', 'Y', '0', '0', '0', 0x00};

我试图通过将每个字符转换为 UInt8 来做到这一点:

let blankBytes: [UInt8] = [
    0x1b,
    UInt8("*"),
    UInt8("r"),
    UInt8("Y"),
    UInt8("1"),
    UInt8("0"),
    UInt8("0"),
    UInt8("0"),
    0x00
]

但是“*”和其他字符无法转换为 UInt8。

谁能帮帮我? 我还在 Swift.

中搜索原始类型指南

非常感谢!

试试这个:

let blankBytes: [UInt8] = [
    0x1b,
    UInt8(ascii: "*"),
    UInt8(ascii: "r"),
    UInt8(ascii: "Y"),
    UInt8(ascii: "1"),
    UInt8(ascii: "0"),
    UInt8(ascii: "0"),
    UInt8(ascii: "0"),
    0x00
]

Swift 类型的参考可以在这里找到: https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/index.html#//apple_ref/doc/uid/TP40014608

编辑: 感谢 Kametrixom 的评论,您可以通过省略不必要的 UnicodeScalar 初始化来节省一个步骤。上面的代码已经更新。