如何在 swift 中附加两个 NSData 变量?

How to append two NSData variable in swift?

我想追加两个NSData:

    var actionIdData :NSData = NSData(bytes: &actionId, length: 2)
    var payLoad : NSData = NSData(bytes: &message, length: 9)

    var messageData : NSMutableData!

    messageData.appendData(actionIdData)
    messageData.appendData(actionIdData)

fatal error: unexpectedly found nil while unwrapping an Optional value

您需要先初始化 messageData,然后再附加到它。

var messageData = NSMutableData() //or var messageData : NSMutableData = NSMutableData()
messageData.appendData(actionIdData)
messageData.appendData(payLoad)

兼容 Swift 4Swift 5 你只能使用 append Data 的函数附加两个不同的数据。

示例用法

guard var data1 = "data1".data(using: .utf8), let data2 = "data2".data(using: .utf8) else {
    return
}

data1.append(data2)
// data1 is now combination of data1 and data2

Swift 5

的方便扩展
extension Array where Element == Data {
   /**
    * Combines data
    * ## Examples:
    * [Data(),Data()].combined
    */
   var combined: Data {
      reduce(.init(), +)
   }
}