Swift函数可以只接受一系列值吗?

时间:2017-08-20 05:32:25

标签: ios swift function swift3 uiimage

我要做的是编写压缩图像的通用函数。

func compress(image: UIImage, withRatio ratio: CGFloat) -> Data? {
    return UIImageJPEGRepresentation(image, ratio)
}

但此处compress()的{​​{1}}可以是任意ratioCGFloat,但我只想接受0...∞。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

由于您的函数已经可以返回var settings = new JsonSerializerSettings { Converters = { new ObjectListToSequentialPropertyArrayConverter<CoordPointsArray>() }, }; var root = JsonConvert.DeserializeObject<List<CoordPointsArray>>(json, settings); ,因此您可以在使用之前检查nil的值。如果它不在您想要的范围内,您可以返回ratio

nil

或者你可以抛出异常:

func compress(image: UIImage, withRatio ratio: CGFloat) -> Data? {
    if 0...1 ~= ratio {
        return UIImageJPEGRepresentation(image, ratio)
    } else {
        return nil
    }
}