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

最近使用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
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值