【问题标题】:Could not find an overload for '!=' that accepts the supplied arguments?找不到接受提供的参数的“!=”的重载?
【发布时间】:2014-06-21 22:58:20
【问题描述】:

刚开始玩 swift 尝试编写一些代码来检测是否有互联网连接。我正在找不到接受最后一行提供的参数的“!=”的重载。我做错了什么?

class func hasConnectivity() -> Bool {
  let reachability: Reachability = Reachability.reachabilityForInternetConnection()
  let networkStatus: NetworkStatus = reachability.currentReachabilityStatus()
  return networkStatus != NotReachable
}

【问题讨论】:

  • 看起来您正在处理 Apple 'Reachability' 示例!你是如何实现NetworkStatus 枚举的?

标签: ios swift


【解决方案1】:

返回您正在寻找的结果的一种方法是打开networkStatus

switch networkStatus {
case .NotReachable:
    return false
default:
    return true
}

【讨论】:

  • 有什么更新吗?这应该已经为您解决了 - 像这样打开枚举案例是我在《Swift 编程语言》一书中看到它完成的方式
【解决方案2】:

你可以使用枚举的原始值:

class func hasConnectivity() -> Bool {
    let reachability: Reachability = Reachability.reachabilityForInternetConnection()
    let networkStatus: Int = reachability.currentReachabilityStatus().value
    return networkStatus != 0
}

NotReachable 的值始终为 0,因此您可以对其进行检查。

【讨论】:

    【解决方案3】:

    试试return networkStatus != .NotReachable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多