我知道,你不能在 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?
的选项
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)
}