Я хочу расширить 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.