检查元组中仅包含布尔值的值

时间:2016-10-04 09:54:52

标签: swift tuples

我构建了一个元组:

var groupUsersFlags = (false, false, false, false)

在整个屏幕中,这些值会翻转为true。所以:

groupUsersFlags.0 = true
groupUsersFlags.1 = true
etc..

有没有办法检查某些值是否在某些时候都是真的?

2 个答案:

答案 0 :(得分:1)

我同意在这种情况下使用其他数据类型的想法。 但是,要回答这个问题,您可以检查所有值是否为真如下:

groupUsersFlags.0 && groupUsersFlags.1 && groupUsersFlags.2 && groupUsersFlags.3

或者,使用反射(使用自己的风险):

Mirror(reflecting: groupUsersFlags).children.reduce(true) { $0 && $1.value as! Bool }

答案 1 :(得分:0)

    let x = Mirror(reflecting: groupUsersFlags)
    var isAllTrue = true

 for value in x.children.enumerate() where value.element.value as? Bool != nil{
    if value.element.value as! Bool == false {
        isAllTrue = false
        break
    }
}

尝试这个解决方案。