Я надеялся, что что-то вроде anArray.contains(nil)
будет работать, но это не так.Swift Лучший способ проверить нуль в виде коллекции
Лучшее, что я могу сделать, это создать расширение, как это:
extension Array {
func containsNil() -> Bool {
return self.filter({ $0 == nil }).count > 0
}
}
Любые другие мысли?
Что именно вы хотите сделать, если оно содержит 'nil'? – Eendje
Каков ваш прецедент? Только массивы, которые могут содержать опции, могут содержать 'nil'. Вы хотите защитить от значений «nil»? Если это так, просто сгладьте массив: 'let vals: [Int?] = [1,2,3, nil]; let flat = vals.flatMap {$ 0} as [Int?]; ' – JAL
Причина, по которой у вас сейчас два комментария, спрашивающие о прецеденте, состоит в том, что это почти наверняка [проблема XY] (http: // meta. stackexchange.com/q/66377/244435). – nhgrif