Swift 从 OBJC 转换
Swift convert from OBJC
我根据本指南构建相机应用程序:https://developer.dji.com/mobile-sdk/documentation/ios-tutorials/index.html
并在 swift 中写下所有内容。
有人可以帮助将其转换为 swift 吗?
-(void)videoFeed:(DJIVideoFeed *)videoFeed didUpdateVideoData:(NSData *)videoData {
[[DJIVideoPreviewer instance] push:(uint8_t *)videoData.bytes length:(int)videoData.length];
}
当我像这样将其转换为 swift 时 :
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData videoData: Data) {
DJIVideoPreviewer.instance().push(UInt8(videoData?.bytes ?? 0), length: (videoData?.count ?? 0))
}
我遇到错误:
无法将类型 'UInt8' 的值转换为预期的参数类型 'UnsafeMutablePointer?'
无法将类型 'UnsafeRawPointer' 的值转换为预期的参数类型 'Int?'
请帮忙。
您可以使用官方代码示例GitHub
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData videoData: Data) {
guard videoFeed == feed else {
NSLog("ERROR: Wrong video feed update is received!");
return
}
videoData.withUnsafeBytes { (ptr: UnsafePointer<UInt8>) in
let p = UnsafeMutablePointer<UInt8>.init(mutating: ptr)
previewer?.push(p, length: Int32(videoData.count))
}
}
下次删帖前尽量搜索好一点
我根据本指南构建相机应用程序:https://developer.dji.com/mobile-sdk/documentation/ios-tutorials/index.html 并在 swift 中写下所有内容。 有人可以帮助将其转换为 swift 吗?
-(void)videoFeed:(DJIVideoFeed *)videoFeed didUpdateVideoData:(NSData *)videoData {
[[DJIVideoPreviewer instance] push:(uint8_t *)videoData.bytes length:(int)videoData.length];
}
当我像这样将其转换为 swift 时 :
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData videoData: Data) {
DJIVideoPreviewer.instance().push(UInt8(videoData?.bytes ?? 0), length: (videoData?.count ?? 0))
}
我遇到错误:
无法将类型 'UInt8' 的值转换为预期的参数类型 'UnsafeMutablePointer?' 无法将类型 'UnsafeRawPointer' 的值转换为预期的参数类型 'Int?'
请帮忙。
您可以使用官方代码示例GitHub
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData videoData: Data) {
guard videoFeed == feed else {
NSLog("ERROR: Wrong video feed update is received!");
return
}
videoData.withUnsafeBytes { (ptr: UnsafePointer<UInt8>) in
let p = UnsafeMutablePointer<UInt8>.init(mutating: ptr)
previewer?.push(p, length: Int32(videoData.count))
}
}
下次删帖前尽量搜索好一点