所以,我只是意识到break只适用于循环或切换。
这是我的问题:是否有推荐的方法来突破障碍?例如:
func getContentFrom(group: ALAssetsGroup, withAssetFilter: ALAssetsFilter) {
group.enumerateAssetsUsingBlock { (result, index , stop) -> Void in
//I want to get out when I find the value because result contains 800++ elements
}
}
现在,我正在使用返回,但我不确定是否建议这样做。还有其他方法吗?谢谢大家。
答案 0 :(得分:8)
如果要停止枚举的当前迭代,只需return
。
但你说:
当我找到值时,我想离开,因为结果包含800 ++元素
因此,这意味着当您找到所需的枚举时,您希望完全停止枚举。在这种情况下,设置pointer
指向的布尔值。或者,第三个参数的更好名称是stop
,例如:
func getContentFrom(group: ALAssetsGroup, withAssetFilter: ALAssetsFilter) {
group.enumerateAssetsUsingBlock() { result, index, stop in
let found: Bool = ...
if found {
//I want to get out when I find the value because result contains 800++ elements
stop.memory = true
}
}
}
答案 1 :(得分:7)
return
很好,块概念与函数类似,所以返回没问题。
希望这会有所帮助.. :)