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 初始化来节省一个步骤。上面的代码已经更新。
我需要在 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 初始化来节省一个步骤。上面的代码已经更新。