Swift 3: Swift 2.3 中 Sequence 的替代方案是什么

Swift 3: What is the alternative for Sequence in Swift 2.3

所以 Swift 3 添加序列,下面的代码在 Swift 3 中工作正常但是我试图将它转换回 Swift 2.3

在 swift 2.3 中我会用什么替换序列?

func isWifiEnabled() -> Bool {
        var addresses = [String]()

        var ifaddr : UnsafeMutablePointer<ifaddrs>?
        guard getifaddrs(&ifaddr) == 0 else { return false }
        guard let firstAddr = ifaddr else { return false }

        for ptr in sequence(first: firstAddr, next: { [=12=].pointee.ifa_next }) {
            addresses.append(String(cString: ptr.pointee.ifa_name))
        }

        freeifaddrs(ifaddr)
        return addresses.contains("awdl0")
    }

这适用于 Swift 2.3 但当然不适用于 Swift 3

 func isWifiEnabled() -> Bool {
    var addresses = [String]()

    var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
    guard getifaddrs(&ifaddr) == 0 else { return false }

    var ptr = ifaddr
    while ptr != nil { defer { ptr = ptr.memory.ifa_next }
         addresses.append(String.fromCString(ptr.memory.ifa_name)!)
    }

    var counts:[String:Int] = [:]

    for item in addresses {
        counts[item] = (counts[item] ?? 0) + 1
    }

    freeifaddrs(ifaddr)
    return counts["awdl0"] > 1 ? true : false
}

已更新 我还注意到它列出了 awdl0 两次?也许是 iOS 10.2

的新事物