ios - 用 nsmutabledata swift 填充数组

标签 ios swift byte arrays

如何在 swift 中使用 nsmutabledata 填充数组?

这是我的代码:

    func hashTest(hash:[UInt8]) {
        var arrayOfBytes = NSMutableData()
        for var i = 0; i < hash.count; i++ {
            if i < 21 {
                arrayOfBytes.appendBytes(hash[i] as UInt8, length: 1)
            }
        }
    }

但是我得到以下错误:

Cannot invoke initializer for type 'UnsafePointer<UInt8>' with an argument list of type '(UInt8)'

我试图重复这样的事情:

let endMarker = NSData(bytes: [0xa1, 0x11, 0xa9, 0xf5, 0xce, 0xdb, 0x18, 0xfb, 0xed, 0xd7, 0x67, 0x25, 0x86, 0xe7, 0xd6, 0x42, 0x96, 0x0f, 0x95, 0xe8] as [UInt8], length: 20)

最佳答案

只需将 & 放在 hash[i] 前面,这将允许不安全指针进入附加字节

func hashTest(var hash:[UInt8]) {
        var arrayOfBytes = NSMutableData()
        for var i = 0; i < hash.count; i++ {
        if i < 21 {
            arrayOfBytes.appendBytes(&hash[i], length: 1)
        }
    }
}

关于ios - 用 nsmutabledata swift 填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068969/

相关文章:

iphone - 本地通知声音不起作用

ios - Swift 应用程序在关闭时有奇怪的行为

objective-c - 在幕后发送电子邮件

ios - 如何针对特定设备查看iOS应用商店收据?

ios - 这是 Bug 还是正常行为?声明过程 StubProc; cdecl;外部 xxx 名称 'TheHeadOfToto' 在编译时不会崩溃

ios - 如何在嵌入式容器之间从一个嵌入式 View 内部切换到另一个嵌入式 View ?

c - 将预分配的 char* 缓冲区传递给 c 函数

iphone - 2 字节数组/内联 c 数组的相等性

javascript - 如何在 JAVASCRIPT 中对原始 PDF 内容(字节)进行 Base64 编码?

python - 去掉 Python 字符串前面的 'b'