什么是突破阻止或停止枚举的推荐方法?

时间:2014-10-14 03:40:01

标签: ios loops swift break

所以,我只是意识到break只适用于循环或切换。

enter image description here

这是我的问题:是否有推荐的方法来突破障碍?例如:

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
    }
}

现在,我正在使用返回,但我不确定是否建议这样做。还有其他方法吗?谢谢大家。

2 个答案:

答案 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很好,块概念与函数类似,所以返回没问题。

希望这会有所帮助.. :)