也许我是第一个在 Swift 中这样做的人,但网上似乎没有任何东西在 Swift 中使用 &/inout 和 uint8_t。有人可以翻译这个吗?这种关系是按位的吗?
Objective-C
uint8_t *buf=(uint8_t *) CVPixelBufferGetBaseAddress(cvimgRef);
快速尝试
let inout buf:uint8_t = SOMETHING HERE CVPixelBufferGetBaseAddress(cvimgRef)
最佳答案
CVPixelBufferGetBaseAddress()
返回 UnsafeMutablePointer<Void>
,
可以转换为 UInt8
指针通过
let buf = UnsafeMutablePointer<UInt8>(CVPixelBufferGetBaseAddress(pixelBuffer))
更新 Swift 3 (Xcode 8),检查 Swift 5 (Xcode 11):
if let baseAddress = CVPixelBufferGetBaseAddress(pixelBuffer) {
let buf = baseAddress.assumingMemoryBound(to: UInt8.self)
// `buf` is `UnsafeMutablePointer<UInt8>`
} else {
// `baseAddress` is `nil`
}
关于objective-c - 如何将 CVPixelBufferGetBaseAddress 调用转换为 Swift?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29814143/