在我的快捷应用程序中,我具有以下功能:
func getImages() {
var i = 0
K: while (true) {
let downloadURL = URL(string: "serverURL")
Database.downloadImage(withURL: downloadURL!) { (image) in
if image == nil { break }
self.imagesArray.append(image!)
self.collectionView?.reloadData()
i += 1
}
}
}
这个想法是从服务器获取图像,但是我不知道图像的确切数量。 但这是if语句检查nil值的错误:
未标记的“中断”仅允许在循环或开关内使用,需要标记的中断才能退出if或do。
我该如何解决,是否需要知道图像数量以限制循环?
答案 0 :(得分:3)
了解图像数量非常重要,您可以使用此
func getImages(_ i:Int) {
let downloadURL = URL(string: "serverURL")
Database.downloadImage(withURL: downloadURL!) { (image) in
if let img = image {
self.imagesArray.append(img)
self.collectionView?.reloadData()
getImages(i+1)
}
else {
print("image is nil final call")
}
}
}
}
也可能是下载依赖于i,以免造成无限循环