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

ytb*_*yan 9 loops break ios swift

所以,我只是意识到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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Ras*_*had 8

return 很好,块概念类似于函数,所以返回是可以的.

希望这可以帮助.. :)


Rob*_*Rob 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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)