2

我只是更新我的豆荚。更新后Reachability导致错误

意外的平台条件(预期为“os”、“arch”或“swift”)

我试图构建和清理,但它不起作用。有什么解决办法? 这是屏幕截图

请帮我解决这个问题。提前致谢。

4

2 回答 2

1

用这个 1

#if (arch(i386) || arch(x86_64)) && os(iOS)

#endif
于 2018-09-26T18:46:31.900 回答
0

您可以按照穆罕默德所说的进行尝试。

我建议使用以下非常易于维护的代码。将以下代码复制粘贴到文件中,然后自己尝试。

import Foundation
import SystemConfiguration

class Network {

    // Declarations
    static let shared = Network()


    // Check has Network
    func isConnected() -> Bool  {

        var zeroAddress = sockaddr_in()
        zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)

        let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
            $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
                SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
            }
        }

        var flags = SCNetworkReachabilityFlags()
        if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
            return false
        }
        let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
        let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
        return (isReachable && !needsConnection)
    }

}

创建一个 swift 文件并将上面的代码放在该文件上。每当您想检查网络状态时,只需使用以下代码

if Network.shared.isConnected() {

   print("Network available")
} else {

   print("Not connected")
}
于 2018-09-27T03:43:09.497 回答