gpt4 book ai didi

ios - 导致 "Cannot pass immutable as inout"的 Swift 3 转换

转载 作者:行者123 更新时间:2023-11-28 06:28:19 25 4
gpt4 key购买 nike

<分区>

我是一个完全的 Swift 新手,但我正在使用 swift 为 BLE 编写应用程序并遇到了问题。我正在处理我发现的一些开源代码,以了解如何构建 iOS 应用程序并与 BLE 通信,当我将其转换为 Swift 3 时,出现了一些错误。

代码:

func int8Value() -> Int8 {
var value: Int8 = 0
copyBytes(to: &UInt8(value), count: MemoryLayout<Int8>.size)
return value
}

错误:

Cannot pass immutable value as inout argument: function call returns immutable value

我一直在网上寻找解决方案,并找到了以下内容:

我尝试实现这些,查看以下代码行:

if let data = characteristic.value {
var bytes = Array(repeating: 0 as UInt8,count:someData.count/MemoryLayout<UInt8>.size)
data.copyBytes(to: &bytes, count:data.count)
}

let data = "foo".data(using: .utf8)!
let array = [UInt8](data)
let array = data.withUnsafeBytes {
[UInt8](UnsafeBufferPointer(start: $0, count: data.count))
}

除了一些常见变量外,我不太了解它们之间的相关性。有人可以解释 CopyBytes 函数内部发生了什么(“to”和“count”在做什么),错误来自什么,以及我一直在看的示例是否与我的方法有任何关系'我正在尝试修复?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com