Swift2 Swift 3:Swift 2.3中的序列替代方案是什么

Swift2 Swift 3:Swift 2.3中的序列替代方案是什么,swift2,swift3,sequence,Swift2,Swift3,Sequence,所以Swift 3添加了序列,下面的代码在Swift 3中运行良好,但是我正在尝试将其转换回Swift 2.3 在swift 2.3中,我将用什么替换序列 func isWifiEnabled() -> Bool { var addresses = [String]() var ifaddr : UnsafeMutablePointer<ifaddrs>? guard getifaddrs(&ifaddr) == 0 e

所以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: { $0.pointee.ifa_next }) {
            addresses.append(String(cString: ptr.pointee.ifa_name))
        }

        freeifaddrs(ifaddr)
        return addresses.contains("awdl0")
    }
func isWifiEnabled()->Bool{
变量地址=[String]()
var ifaddr:不可女性化的指针?
guard getifaddrs(&ifaddr)==0 else{return false}
guard let firstAddr=ifaddr else{return false}
对于顺序中的ptr(第一个:firstAddr,下一个:{$0.pointee.ifa_next}){
addresses.append(字符串(cString:ptr.pointee.ifa_name))
}
FreeIFADRS(ifaddr)
返回地址。包含(“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
}
func isWifiEnabled()->Bool{
变量地址=[String]()
变量ifaddr:unsafemeutablepointer=nil
guard getifaddrs(&ifaddr)==0 else{return false}
var ptr=ifaddr
而ptr!=nil{defer{ptr=ptr.memory.ifa_next}
addresses.append(String.fromCString(ptr.memory.ifa\u name)!)
}
变量计数:[字符串:Int]=[:]
地址中的项目{
计数[项目]=(计数[项目]??0)+1
}
FreeIFADRS(ifaddr)
返回计数[“awdl0”]>1?真:假
}
已更新
我还注意到它两次列出awdl0?也许iOS 10.2的一个新功能有代码枚举Swift 2和3的所有接口。这将发出警告“C-style for语句已弃用…”您可以使用上面链接中的while循环。更新:)谢谢