相关疑难解决方法(0)

如何在Swift中使用SCNetworkReachability

我正在尝试将此代码段转换为Swift.由于一些困难,我正在努力开始起飞.

- (BOOL) connectedToNetwork
{
    // Create zero addy
    struct sockaddr_in zeroAddress;
    bzero(&zeroAddress, sizeof(zeroAddress));
    zeroAddress.sin_len = sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;

    // Recover reachability flags
    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
    SCNetworkReachabilityFlags flags;

    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
    CFRelease(defaultRouteReachability);

    if (!didRetrieveFlags)
    {
        return NO;
    }

    BOOL isReachable = flags & kSCNetworkFlagsReachable;
    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;

    return (isReachable && !needsConnection) ? YES : NO;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的第一个和主要问题是如何定义和使用C结构.在struct sockaddr_in zeroAddress;上面代码的第一行()中,我认为他们正在定义一个zeroAddress从struct sockaddr_in(?)调用的实例,我假设.我试着宣布var这样的话.

var zeroAddress …
Run Code Online (Sandbox Code Playgroud)

c struct reachability ios swift

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

Swift 3 UnsafePointer($ 0)不再在Xcode 8 beta 6中编译

我的代码snipet如下......:

    let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
        SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
    }
Run Code Online (Sandbox Code Playgroud)

...不再使用以下错误编译,我不明白:

"'init' is unavailable: use 'withMemoryRebound(to:capacity:_)' to temporarily view memory as another layout-compatible type."
Run Code Online (Sandbox Code Playgroud)

该怎么做才能修复它?

unsafe-pointers swift3 xcode8-beta6

60
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×1

ios ×1

reachability ×1

struct ×1

swift ×1

swift3 ×1

unsafe-pointers ×1

xcode8-beta6 ×1