在 Swift 中传递所有枚举值

诺亚·伊阿罗比诺

我必须传递一个枚举数组作为函数参数,大多数时候我必须传递枚举的每个案例。是否有一种速记方法可以包含所有内容,而不必[.NFL, .NBA, .NHL, .MLB, .NCAAM, .NCAAF]每次都通过我可以制作和所有财产,以便我可以通过.all包括所有情况的财产吗?

enum LSLeague: String {
    case NFL = "NFL"
    case NBA = "NBA"
    case NHL = "NHL"
    case MLB = "MLB"
    case NCAAM = "NCAAM"
    case NCAAF = "NCAAF"
}
杰夫·库诺耶

您可以在枚举类型上使用 .allCases。

因此,根据您的用例,您可能仍然需要做一些工作,但是如果您使用,您可以迭代枚举中的每个元素:

    for league in LSLeague.allCases {
       //code here
    }

编辑:@aheze 有一个很好的观点,我只是想添加到这个答案中。他说,“确保枚举也符合 CaseIterable”

所以,还要确保你改变你必须的枚举:

    enum LSLeague: String: CaseIterable {
        case NFL = "NFL"
        case NBA = "NBA"
        case NHL = "NHL"
        case MLB = "MLB"
        case NCAAM = "NCAAM"
        case NCAAF = "NCAAF"
    }

如果你能够使用这种技术。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章