swift编码出现Call can throw, but it is not marked with***错
发布时间:2020-12-14 06:35:29 所属栏目:百科 来源:网络整理
导读:最近使用Swift编程中,遇到一个问题,就是出现了Call can throw,but it is not marked with ‘try’ and the error is not handled的错误。 我做的是获取视频的首帧图片,在使用到 copyCGImageAtTime(requestedTime: CMTime,actualTime: UnsafeMutablePointe
最近使用Swift编程中,遇到一个问题,就是出现了Call can throw,but it is not marked with ‘try’ and the error is not handled的错误。
我做的是获取视频的首帧图片,在使用到 copyCGImageAtTime(requestedTime: CMTime,actualTime: UnsafeMutablePointer<CMTime>) throws -> CGImage方法时,出现了Call can throw,but it is not marked with ‘try’ and the error is not handled的错误。刚开始以为是参数的错误,因为在OC该方法是这样的 - (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * __nullable * __nullable)outError,纠结好久,上网查阅相关资料,解决了!下面看一下: 这是OC中方法的解释: [code]/*! @method copyCGImageAtTime:actualTime:error: @abstract Returns a CFRetained CGImageRef for an asset at or near the specified time. @param requestedTime The time at which the image of the asset is to be created. @param actualTime A pointer to a CMTime to receive the time at which the image was actually generated. If you are not interested in this information,pass NULL. @param outError An error object describing the reason for failure,in the event that this method returns NULL. @result A CGImageRef. @discussion Returns the CGImage synchronously. Ownership follows the Create Rule. */ - (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * __nullable * __nullable)outError CF_RETURNS_RETAINED; 这是Swift中方法的解释 [code]/*! @method copyCGImageAtTime:actualTime:error: @abstract Returns a CFRetained CGImageRef for an asset at or near the specified time. @param requestedTime The time at which the image of the asset is to be created. @param actualTime A pointer to a CMTime to receive the time at which the image was actually generated. If you are not interested in this information,pass NULL. @param outError An error object describing the reason for failure,in the event that this method returns NULL. @result A CGImageRef. @discussion Returns the CGImage synchronously. Ownership follows the Create Rule. */ public func copyCGImageAtTime(requestedTime: CMTime,actualTime: UnsafeMutablePointer<CMTime>) throws -> CGImage 这是我出现问题代码的截图: 解决办法: 编码出现error:Call can throw,but it is not marked with ‘try’ and the error is not handled,通过加一个try解决,原因就是没有处理错误 (PS: 就像Java中的异常错误处理,也是采用 try …catch) 最终解决错误的代码: [code]func getThunbImage(url: NSURL) -> (UIImage) { let asset: AVURLAsset = AVURLAsset(URL: url,options: nil) let gen: AVAssetImageGenerator = AVAssetImageGenerator(asset: asset) gen.appliesPreferredTrackTransform = true let time: CMTime = CMTimeMakeWithSeconds(0,1) var actualTime: CMTime = CMTimeMake(0,0) var thumb: UIImage = UIImage() do { let image: CGImageRef = try gen.copyCGImageAtTime(time,actualTime: &actualTime) thumb = UIImage(CGImage: image) } catch { } return thumb } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |