我知道,你不能在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!
}
如果文件不存在,则此代码不起作用。我能回头看看它是否成功? 如果图像存在,我想返回图像,否则我真的不知道该怎么做。
答案 0 :(得分:4)
有两种选择。您可以将UIImage?
返回到nil
,因为返回的结果表明文件的加载不成功,或者您返回UIImage
但是如果方法throw
出错则加载文件失败。
选项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)
}