我对Xcode非常满意(提前致歉)。尝试将一些旧代码带入生活。通过尝试移至Swift 5获得以下内容。
'withUnsafeMutableBytes'已过时:改为使用withUnsafeMutableBytes<R>(_: (UnsafeMutableRawBufferPointer) throws -> R) rethrows -> R
目标:我要做的就是适当地修改代码并完成。
我查看了其他Stack Overflow消息,搜索了各种文章,尝试了不同的方法,但是无法快速确定需要更改的内容。我相信对于了解更多信息的人来说,解决方案非常简单。
var responseData = Data(count: Int(responseDataLength))
_ = responseData.withUnsafeMutableBytes
{
mfError = MFMediaIDResponse_GetAsString(mfMediaIdResponsePtr.pointee, MFString($0), responseDataLength)
}
答案 0 :(得分:1)
这是我的示例,当刷新withUnsafeMutableBytes
的旧代码时
希望有帮助
旧的:
_ = data.withUnsafeMutableBytes { (bytes: UnsafeMutablePointer<UInt8>) in
memcpy((ioData.pointee.mBuffers.mData?.assumingMemoryBound(to: UInt8.self))!, bytes, dataCount)
}
新的:
_ = data.withUnsafeMutableBytes { (rawMutableBufferPointer) in
let bufferPointer = rawMutableBufferPointer.bindMemory(to: UInt8.self)
if let address = bufferPointer.baseAddress{
memcpy((ioData.pointee.mBuffers.mData?.assumingMemoryBound(to: UInt8.self))!, address, dataCount)
}
}
说明:
使用UnsafeMutablePointer<ContentType>
,在其关闭时会得到一个unsafeMutablePointer。
要访问其内存,因此需要使用bindMemory
进行键入,