Ich habe eine Funktion mit einer for-Schleife in der es:Beenden Iteration der for-Schleife Swift iOS
func example() {
// create tasks
for link in links {
let currIndex = links.indexOf(link)
if let im = story_cache?.objectForKey(link) as? UIImage {
if ((currIndex != nil) && (currIndex < content.count)) {
if (content[currIndex!].resource_type == "image") {
content[currIndex!].image = im
return
}
}
} else {
if ((currIndex != nil) && (currIndex < content.count)) {
if (content[currIndex!].resource_type == "video") {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory : NSString = paths[0]
let appFile = documentsDirectory.stringByAppendingPathComponent(content[currIndex!].id! + ".mov")
let local_URL = NSURL(fileURLWithPath: appFile)
if let cached_URL = story_cache?.objectForKey(local_URL) as? NSURL {
content[currIndex!].videoURL = cached_URL
return
}
}
}
}
let dltask = session.dataTaskWithURL(link, completionHandler: { (data, response, error) in
// MORE CODE.....
})
}
}
Im Grunde, was ich erreichen will ist, dass wenn wir eine der return
Aussagen erreichen Sie den Code für diese Ausführung beendet insbesondere link
in der Schleife, und die Schleife bewegt sich auf die nächste Verbindung. Wenn KEINE der Return-Anweisungen erreicht sind, möchte ich die dltask
ausgeführt werden. Ich könnte dies mit einer Menge anderer Anweisungen erreichen, aber ich denke, das würde den Code ziemlich unordentlich machen. Mache ich das richtig mit return
?