gpt4 book ai didi

ios - 无法使用 (UnsafeMutableRawPointer) 类型的参数列表调用类型 UnsafePointer<_> 的初始值设定项

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:36:49 26 4
gpt4 key购买 nike

当我从音频缓冲区数据写入多点连接中的输出流时出现错误

Cannot invoke initializer for type UnsafePointer<_> with an argument list of type (UnsafeMutableRawPointer)

我找到了很多解决方案,但这个解决方案对我没有帮助。

我的代码是:

func send(_ buffer: AudioBuffer) {
print(buffer.mData!)
print(buffer.mDataByteSize)

outputStreme?.write(UnsafePointer(buffer.mData), maxLength: buffer.mDataByteSize)
}

enter image description here

提前致谢..:)

最佳答案

当某些规范更改影响了您的代码时,请查看官方引用资料。在你的情况下 AudioBuffer.mData类型为 UnsafeMutableRawPointer? , 你需要将它传递给 OutputStream.write(_:maxLength:) 的第一个参数类型 UnsafePointer<UInt8> .

UnsafeMutableRawPointer

您可以找到返回 UnsafeMutablePointer<T> 的方法:

func assumingMemoryBound<T>(to: T.Type)

bound 的概念有点令人困惑,但您似乎可以将它用于指针类型转换:

outputStreme?.write(buffer.mData!.assumingMemoryBound(to: UInt8.self), maxLength: Int(buffer.mDataByteSize))

(假设强制解包 ! 按照您的 print(buffer.mData!) 的建议足够安全。)

Memory bound-ness 对于大多数返回指针的 API 没有很好的定义,并且目前没有影响。还有一种类型转换方法 func bindMemory<T>(to: T.Type, capacity: Int) , 并且都可以正常工作(同样,就目前而言)。

关于ios - 无法使用 (UnsafeMutableRawPointer) 类型的参数列表调用类型 UnsafePointer<_> 的初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181614/

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