当前位置: 首页 > 面试题库 >

如何将CVPixelBufferGetBaseAddress调用转换为Swift?

郑正阳
2023-03-14
问题内容

也许我是Swift中第一个这样做的人,但在Swift中使用&/ inout和uint8_t似乎在网上没有任何东西。有人可以翻译一下吗?这种关系是按位的吗?

目标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`
}


 类似资料:
  • 问题内容: 我正在使用播放框架和Apache Kafka。 我有一个POST方法,它将消息发送到Kafka。Kafka有一个API方法 public java.util.concurrent.Future send(ProducerRecord记录,回调回调) 其中Javadoc说 异步将记录发送到主题,并在确认发送后调用提供的回调。 我正在使用play框架公开此功能。我想从Controller方

  • 我正在使用play框架和Apache Kafka。 我有一个POST方法,它向Kafka发送消息。Kafka有一个API方法 公共java.util.concurrent。未来发送(生产记录记录、回调) 其中Javadoc说 异步发送记录到主题,并在发送被确认时调用提供的回调。 我将使用play框架公开此功能。我想返回一个<代码>promise

  • 我有下面的curl,它成功地将我登录到一个网站。它返回一个302和一个cookie: 不幸的是,我必须插入真正的用户名 我想使用将其转换为Python3代码。所以我做了这个代码: 但是我从Python3代码(200)得到的响应与我从Curl(302)得到的响应不匹配。这意味着目标服务器感觉到两个请求之间的差异。 如何将curl转换为Python3,它发送完全相同的底层HTTP请求?

  • 问题内容: 我有curl命令: 我想在Java API中创建HTTP请求,该操作将执行相同的操作。可以在本README中找到该curl命令。它用于开始在RabbitMQ上记录日志。回应并不重要。 现在,我创建了这样的内容(我删除了不太重要的行,例如捕获了异常等),但是不幸的是,它不起作用: 完整代码 问题答案: 这是最终的解决方案:

  • 问题内容: 以下函数从url获取图像并进行加载,然后返回其宽度和高度: 问题是,如果我做这样的事情: 我得到,因为该函数运行但图像尚未加载。 仅当照片已加载且宽度和高度已可用时,如何使用等待/异步返回值? 问题答案: 如何使用/ 将此回调函数转换为Promise? 你不知道与往常一样,您可以使用构造函数。没有语法糖。 仅当照片已加载且宽度和高度已经可用时,如何使用/ 记录值? 你可以做

  • 我有一个实现可调用接口的类。我想为类调度一个任务,使用schduledExecutorService接口的schduleAtFixed速率方法。但是需要一个可运行的对象作为它可以调度的命令。 因此,我需要某种方法来将可调用转换为可运行。我试过简单的铸造,但不起作用。 示例代码: