Swift 我想把func internetChanged放在另一个文件中。(关于可达性)
我有很多viewController将使用可达性, 所以我想把另一个文件, 这是我的密码Swift 我想把func internetChanged放在另一个文件中。(关于可达性),swift,reachability,Swift,Reachability,我有很多viewController将使用可达性, 所以我想把另一个文件, 这是我的密码 func internetConnect() { NotificationCenter.default.addObserver(self, selector: #selector(internetChanged), name: Notification.Name.reachabilityChanged, object: reachability) do{ try reacha
func internetConnect() {
NotificationCenter.default.addObserver(self, selector: #selector(internetChanged), name: Notification.Name.reachabilityChanged, object: reachability)
do{
try reachability.startNotifier()
}catch{
print("could not start reachability notifier")
}
}
@objc func internetChanged(note: Notification) {
let reachability = note.object as! Reachability
if reachability.connection != .none{
DispatchQueue.main.async {
self.internetLabel.isHidden = true
}
}else{
DispatchQueue.main.async {
self.internetLabel.isHidden = false
}
}
}
但是如果我把另一个文件放进去,
它抓不住标签,
如果我
func internetConnect(label:UILabel) {
NotificationCenter.default.addObserver(self, selector: #selector(internetChanged), name: Notification.Name.reachabilityChanged, object: reachability)
do{
try reachability.startNotifier()
}catch{
print("could not start reachability notifier")
}
}
标签还是放不进去
selector: #selector(internetChanged)
假设第一个文件中的视图控制器名称为
ViewController1
如果不在扩展ViewController1{…}
中添加此函数,则对于选择器,需要显式指定此方法所在的视图控制器
因此,如果
internetChanged
位于ViewController1
中,那么要从另一个文件中使用它,请使用#选择器(ViewController1.internetChanged)
这个问题并不清楚,但您可以为所有ViewController1使用一个子类,并在其中添加连接方法。在使用完控制器后,不要忘记移除观察者