【发布时间】:2021-06-09 15:40:14
【问题描述】:
我从我正在开发的应用程序中获得了此代码。当 BLE 人离开团队时,我继承了这个代码。我不擅长低级的东西和数据的东西。我是 UI/UX 前端人员,现在我确实需要亲自动手。这段代码现在有点旧,并且使用了不推荐使用的代码。我一直试图使警告静音,但没有成功,但我一直以相同的代码或错误结束。
这是生成警告的代码。使用 withUnsafeBytes 时的返回行
extension Data {
func scanValueFromData<T>(start: Int = 0, invalid: T) -> (T, Int) {
let length = MemoryLayout<T>.size
guard self.count >= start + length else {
return (invalid, start+length)
}
return (self.subdata(in: start..<start+length).withUnsafeBytes{ $0.pointee }, start+length)
}
}
此方法用于将字节数组解码为结构。我从 BLE 服务中获取数据,并将各种变量打包成一个字节数组。
如果有任何一种方法可以解决这个问题或更好的方法来做 id。
【问题讨论】:
-
stackoverflow.com/questions/55378409/… ?
{ $0.pointee }部分需要更新。 “加载为 T”?
标签: swift bluetooth-lowenergy unsafe-pointers unsafe-unretained