有什么方法可以纠正我的编码?

时间:2017-05-16 16:35:16

标签: swift swift3

为什么.applying(transform)未解决? 还有为什么没有imageByApplying了呢?

let output = filter?.outputImage?.applying(transform)
        if (output != nil) {
            return UIImage(CIImage: output!)
}
        return nil;
}

2 个答案:

答案 0 :(得分:1)

永远不要检查nil然后强行打开包装。只需使用条件绑定:

if let output = filter?.outputImage?.applying(transform) {
    return UIImage(CIImage: output)
}
    return nil;
}

或者,如果你真的想得到幻想:

return filter?.outputImage?.applying(transform).map(UIImage.init(CIImage:))

答案 1 :(得分:0)

未解析的标识符可能是UIImage(CIImage。在Swift 3中它是UIImage(ciImage

更好的可选绑定outputImage

如果检查成功,将应用变换(不返回可选项)

if let output = filter?.outputImage {
    return UIImage(ciImage: output.applying(transform))
}
return nil

或者更喜欢

guard let output = filter?.outputImage else { return nil }
return UIImage(ciImage: output.applying(transform))

applying(_是前imageByApplying

的Swift 3语法