在 Swift 2.2 中使用持有 String 属性的对象创建字节数组
Create a byte array in Swift 2.2 using an object holding String properties
假设我有一个 class foo,它有 10 个属性,所有属性都是 String 类型,我想创建一个长度为 10 的字节数组,如下所示:
let data = NSData(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,] as [UInt8], length:10)
0x00 的每个实例都是 class foo 的 属性。我将如何着手创建它?
class foo {
var mailbox = "0x00"
var cmd = "0x00"
var data0 = "0x00"
var data1 = "0x00"
var data2 = "0x00"
var data3 = "0x00"
var data4 = "0x00"
var data5 = "0x00"
var data6 = "0x00"
var data7 = "0x00"
}
那么字节数组将包含:
let data = NSData(bytes:[foo.mailbox, foo.cmd, foo.data0, foo.data1, foo.data2, foo.data3, foo.data4, foo.data5, foo.data6, foo.data7] as [UInt8], length:10)
我通过从 String 属性中删除“0x”并在进行十六进制到十进制转换后将 String 转换为 Int 来解决这个问题。然后我只是将它转换为我的字节数组的 UInt8。
let mailbox = Int(converttoDec(foo.mailbox.stringByReplacingOccurrencesOfString("0x", withString: ""))
let data = NSData(bytes:[UInt8(mailbox!), UInt8(command!), UInt8(data0!), UInt8(data1!), UInt8(data2!), UInt8(data3!), UInt8(data4!), UInt8(data5!), UInt8(data6!), UInt8(data7!),] as [UInt8], length:10)
假设我有一个 class foo,它有 10 个属性,所有属性都是 String 类型,我想创建一个长度为 10 的字节数组,如下所示:
let data = NSData(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,] as [UInt8], length:10)
0x00 的每个实例都是 class foo 的 属性。我将如何着手创建它?
class foo {
var mailbox = "0x00"
var cmd = "0x00"
var data0 = "0x00"
var data1 = "0x00"
var data2 = "0x00"
var data3 = "0x00"
var data4 = "0x00"
var data5 = "0x00"
var data6 = "0x00"
var data7 = "0x00"
}
那么字节数组将包含:
let data = NSData(bytes:[foo.mailbox, foo.cmd, foo.data0, foo.data1, foo.data2, foo.data3, foo.data4, foo.data5, foo.data6, foo.data7] as [UInt8], length:10)
我通过从 String 属性中删除“0x”并在进行十六进制到十进制转换后将 String 转换为 Int 来解决这个问题。然后我只是将它转换为我的字节数组的 UInt8。
let mailbox = Int(converttoDec(foo.mailbox.stringByReplacingOccurrencesOfString("0x", withString: ""))
let data = NSData(bytes:[UInt8(mailbox!), UInt8(command!), UInt8(data0!), UInt8(data1!), UInt8(data2!), UInt8(data3!), UInt8(data4!), UInt8(data5!), UInt8(data6!), UInt8(data7!),] as [UInt8], length:10)