相关疑难解决方法(0)

检查与Swift的互联网连接

当我尝试在我的iPhone上检查互联网连接时,我收到了一堆错误.任何人都可以帮我解决这个问题吗?

代码:

import Foundation
import SystemConfiguration

public class Reachability {

class func isConnectedToNetwork() -> Bool {

    var zeroAddress = sockaddr_in()
    zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
    zeroAddress.sin_family = sa_family_t(AF_INET)

    let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
        SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
    }

    var flags: SCNetworkReachabilityFlags = 0

    if SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) == 0 {
        return false
    }

    let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) != 0
    let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionRequired)) != 0

    return (isReachable && !needsConnection) ? true : false
}

}
Run Code Online (Sandbox Code Playgroud)

代码中的错误:

错误

如果不可读,错误1说:

'Int'不能转换为'SCNetworkReachabilityFlags'

错误2和3:

找不到接受提供的参数的'init'的重载

xcode reachability ios swift

238
推荐指数
18
解决办法
20万
查看次数

使用Swift中的可达性,NSNotification和网络链接调节器检测网络连接变化

我正在尝试将网络连接检测集成到我的应用程序中,但是,由于我的网络更改未被检测到/打印到控制台中,因此我似乎在某处出错.

正如帖子中提到的,我目前正在使用以下类和工具来完成这项工作:

  1. 可达性 {.h, .m}
  2. NSNotificationCenter
  3. 网络链路调节器

AppDelegate.Swift中,我设置了NSNotificationCenter检测更改:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// ... 
// A: Checks if the device is connected to the internet

    var defaultCenter: Void = NSNotificationCenter().addObserver(self, selector:"checkForReachability", name: kReachabilityChangedNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

}

在同一个类中AppDelegate,我还创建了此函数,以便在发生更改时触发:

func checkForReachability () {

    var networkReachability = Reachability.reachabilityForInternetConnection()
    networkReachability.startNotifier()

    var remoteHostStatus = networkReachability.currentReachabilityStatus()
    if (remoteHostStatus.value == NotReachable.value) {
        println("Not Reachable")
    } else if (remoteHostStatus.value == ReachableViaWiFi.value) {
        println("Reachable …
Run Code Online (Sandbox Code Playgroud)

reachability nsnotificationcenter ios swift

27
推荐指数
4
解决办法
5万
查看次数

标签 统计

ios ×2

reachability ×2

swift ×2

nsnotificationcenter ×1

xcode ×1