swift编码出现Call can throw, but it is not marked with***错误的解决

swift编码出现Call can throw, but it is not marked with***错误的解决,第1张

概述最近使用Swift编程中,遇到一个问题,就是出现了Call can throw, but it is not marked with ‘try’ and the error is not handled的错误。  我做的是获取视频的首帧图片,在使用到 copyCGImageAtTime(requestedTime: CMTime, actualTime: UnsafeMutablePointer< 最近使用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 } 总结

以上是内存溢出为你收集整理的swift编码出现Call can throw, but it is not marked with***错误的解决全部内容,希望文章能够帮你解决swift编码出现Call can throw, but it is not marked with***错误的解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存