如何解决Swift 5在Xcode 12中无法推断数组错误
这是简单的代码:
var buffer = [UInt8](_data)
var sec_ivs = [UInt8](repeating: 0,count: 8);
memcpy(&sec_ivs + 3,&buffer,5);
如何重写此代码以使其在Xcode 12中再次起作用?这段代码在Xcode 11中运行正常,但是Xcode 11不支持iOS 14调试。感谢帮助。
解决方法
您可以通过以下方式将数组的(可变)元素存储的地址传递给C函数:
memcpy(&sec_ivs,buffer,5)
,但不适用于偏移量。在这里,您需要使用withUnsafeMutableBytes()
获取缓冲区指针,以便可以添加偏移量:
sec_ivs.withUnsafeMutableBytes {
memcpy($0.baseAddress! + 3,5);
}
请注意,&
的第二个参数不需要memcpy()
运算符,因为这是一个恒定指针参数。
更简单的解决方案是将目标数组的一部分分配给
sec_ivs[3..<8] = buffer[0..<5]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。