相关疑难解决方法(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中的互联网连接可用性

有没有办法检查使用Swift的互联网连接是否可用?

我知道有很多第三方库可以做到这一点,但它们都是用Objective-C编写的.我正在寻找一个Swift替代品.

ios network-connection swift

105
推荐指数
5
解决办法
8万
查看次数

如何在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万
查看次数

Swift iOS - 当有 wifi 连接但没有互联网连接时该怎么办?

我在我的 iOS 应用程序中使用 Alamofire。我在 viewWillAppear 和 AppDelegate 中使用 bool 值和 NSNotifications 来检查是否有互联网连接。如果没有 wifi 连接,则会出现一个弹出窗口以通知用户。如果有 wifi 连接,弹出窗口就会消失,一切正常。只要wifi显然无法正常工作,我就没有问题。

我正在参加一个聚会,有人向我解释说它的工作方式是它寻找 wifi 连接而不是互联网连接。例如。如果我有一个 wifi 路由器并且它已插入但路由器未连接到互联网 Alamofire 会将此视为成功连接,因为它实际上正在连接到 wifi 虽然它不知道 wifi 无法连接到互联网.

我只是在连接到开放网络的情况下,我的应用程序最初的响应好像我真的连接到了互联网(没有弹出窗口),但我无法连接到任何东西。wifi信号全开。在终端中,我运行了 ping,结果发现连接已死。我的应用程序无法区分。

在此处输入图片说明 在此处输入图片说明

在这样的情况下,如何让弹出窗口出现?

还有什么是 .case unknown ?

Alamofire.Swift:

import Foundation
import Alamofire

open class NetworkManager {

    open static var sharedManager: NetworkReachabilityManager = {

        let reachabilityManager = NetworkReachabilityManager()

        reachabilityManager?.listener = { (status) in

            switch status {

            case .notReachable:
                print("The network is not reachable")
                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "unsuccessful"), object: nil)

            case .unknown : //???????
                print("It is …
Run Code Online (Sandbox Code Playgroud)

networking nsnotifications reachability ios alamofire

6
推荐指数
1
解决办法
5245
查看次数

Swift:如何检查我的应用是否具有WLAN权限并且设备是否已连接到WIFI源?

我正在开发一个我需要知道的应用程序:

  1. 我的应用是否拥有访问WLAN网络的权限.
  2. 设备当前是否已连接到WIFI.

我知道你可以使用Reachability来检查设备是否已连接到互联网,但即使应用程序没有访问网络的权限,它也会返回true.我怎么知道上面列出的2个信息?

附加信息:这不是常规应用程序.此应用程序用于通过WIFI控制玩具.所以我真的不在乎应用是否连接到互联网.我想知道的是,该应用程序是否具有访问WLAN网络的权限.

iphone permissions reachability ios swift

4
推荐指数
1
解决办法
1039
查看次数

如果没有网络连接,则显示警报

你怎么能通知用户没有与 swift 3 的网络连接。我已经尝试了很多解决方案,但到目前为止都没有奏效。我不是在寻找网络连接的速度

swift

0
推荐指数
1
解决办法
3337
查看次数