Я хочу расширить Array с помощью функции, которая возвращает количество всех элементов, отличных от nil, в массиве. В идеале это будет работать с массивом любых необязательных или необязательных типов. Я пробовал различные вещи, которые не удалось скомпилировать, разбил Xcode или и то, и другое. Я бы предположил, что это будет выглядеть примерно так:
extension Array {
func realCount() -> Int {
var cnt = 0
for value in self {
if value != nil {
cnt++
}
}
return cnt
}
}
Здесь Свифт жалуется, что T
не конвертируется в UInt8
. Или иногда MirrorDisposition
или другие случайные классы.
Итак, если предположить, что трюк?
Изменить: с Xcode 6 beta 5 это теперь компилируется, но не дает ожидаемых результатов. if value != nil
каждый раз оценивает значение true.