繁体   English   中英

Swift返回什么而不是nil?

[英]Swift what to return instead of nil?

我知道,您不能在Swift中返回nil
我可以用什么代替呢?

我有以下代码:

public func getImageFromFilename(name: String) -> UIImage {
    print(name)
    var img: UIImage?
    img = UIImage(named: name + ".jpg")
    if (img == nil) {
        img = UIImage(named: name + ".png")
    }
    return img!
}

如果文件不存在,则此代码不起作用。 我可以返回什么来查看它是否成功?
我想返回图像(如果存在),否则我真的不知道该怎么办。

有两种选择。 您可以返回UIImage? 其中nil作为返回结果将指示文件加载不成功,或者您返回UIImage但如果文件加载失败会使该方法throw错误。

UIImage?选项UIImage?

public func getImageFromFilename(name: String) -> UIImage? {
    print(name)

    if let img = UIImage(named: name + ".jpg") {
        return img
    }

    if let img = UIImage(named: name + ".png") {
        return img
    }

    return nil
}

投掷选项:

public func getImageFromFilename(name: String) throws -> UIImage {
    print(name)

    if let img = UIImage(named: name + ".jpg") {
        return img
    }

    if let img = UIImage(named: name + ".png") {
        return img
    }

    throw YourErrorType.failedToLoadImage(name)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM