ios - 无法调用类型 'UnsafeMutablePointer' <uint8 >' with an argument list of type '(UnsafeMuatableRawpointer?)的初始值设定项'

标签 ios swift

<分区>

我正在尝试将我的项目更新到 swift 3.0,但我在 UnsafeMutablePointer 中遇到了问题。

这是我的错误

Cannot invoke initializer for type 'UnsafeMutablePointer<uint8>' with an argument list of type '(UnsafeMuatableRawpointer?)'

代码:

let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
let src_buff = CVPixelBufferGetBaseAddress(imageBuffer!)
let dataBuffer = UnsafeMutablePointer<UInt8>(src_buff)    //error here

为什么?如何解决?

最佳答案

从 void 指针(又名 UnsafeMutableRawPointer)转换在 Swift 3 中发生了变化。您有 2 个选项:

如果您知道缓冲区长度(更安全):

let dataBuffer = src_buff?.bindMemory(to: UInt8.self, capacity: len)

如果你不知道:

let dataBuffer = src_buff?.assumingMemoryBound(to: UInt8.self)

关于ios - 无法调用类型 'UnsafeMutablePointer' <uint8 >' with an argument list of type '(UnsafeMuatableRawpointer?)的初始值设定项',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560144/

相关文章:

ios - 什么时候需要设置 CALayer 的 contentsScale 属性?

ios - 在开发发行版之间保留核心数据

ios - 使用 map 从坐标生成一系列 SwiftChart 对象

swift - 如何创建加号栏按钮项

objective-c - callStackSymbols 的缺点是什么

ios - Swift 中的顺序淡入淡出

objective-c - 寻找仪器之外的方法来验证和检查任何保留周期

swift - NSNumber swift 字典到 userdefaults swift3

swift - 有没有办法一起使用模板、输入输出参数和可选参数?

ios - SKSpriteNode - 不同的 Sprite 但功能相同