升级到Swift 5.2 / Xcode 11.4后,以下代码会出现警告:
extension Data {
init<T>(from value: T) {
var value = value
let pointer = UnsafeBufferPointer(start: &value, count: 1)
self.init(buffer: pointer)
}
func to<T>(type: T.Type) -> T {
return self.withUnsafeBytes { $0.load(as: T.self) }
}
}
在代码行let pointer = UnsafeBufferPointer(start: &value, count: 1)中,我得到了以下错误:
'UnsafeBufferPointer'的初始化导致悬垂指针
我可以使用@silenceWarning来解决问题,但这不是一个很好的解决方案。也许我需要将指针存储在某个地方,并在未来对其进行清理?