首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >issue 3上的可达性问题(xCode8-beta6)

issue 3上的可达性问题(xCode8-beta6)
EN

Stack Overflow用户
提问于 2016-08-24 18:02:18
回答 1查看 918关注 0票数 1

我目前正在使用xCode8 beta6(swift3)中的Reachability库开发一个项目。我认为我在我的项目中正确地实现了Reachability.swift。

顺便说一句,当我调用Reachability.swift时,应用程序会崩溃在下面的reachability.startNotifier()行中。

代码语言:javascript
复制
let reachability = Reachability()!
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:",name: ReachabilityChangedNotification,object: reachability)
    do{
      try reachability.startNotifier()
    }catch{
      print("could not start reachability notifier")
    }

这是我在日志里看到的。

* NSForwarding:警告:类'WebClient‘的对象0x10d939668不实现methodSignatureForSelector:-未识别的选择器+WebClient reachabilityChanged:

当然,我确实实现了reachabilityChanged选择器函数。

代码语言:javascript
复制
func reachabilityChanged(note: NSNotification) {

        let reachability = note.object as! Reachability

        if reachability.isReachable {
            if self.pendingSurvey == true {
               ....
            }
        }
    }

我花了很多时间去找原因,但我想不出原因。

EN

回答 1

Stack Overflow用户

发布于 2016-08-24 21:22:57

在Swift 3中,func reachabilityChanged(note: NSNotification)的目标C选择器变成reachabilityChangedWithNote:.(在一些贝塔中,这可能有点不同。)因此,Reachability运行时无法找到选择器reachabilityChange:和崩溃的方法。

通常,在Swift 3中声明用于选择器reachabilityChange:的Swift方法如下:

代码语言:javascript
复制
func reachabilityChanged(_ note: NSNotification) {
    //
}

或者使用@objc是另一种方式:

代码语言:javascript
复制
@objc(reachabilityChange:)
func reachabilityChanged(note: NSNotification) {
    //
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39130140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档