gpt4 book ai didi

swift - 可达性更改通知应仅调用一次

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:48 25 4
gpt4 key购买 nike

我在我的 swift 项目中使用了 Reachability。我在 AppDelegate 中有以下代码

NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: reachability)
reachability.startNotifier()

它会调用

func reachabilityChanged(note: NSNotification) {
}

但我的问题是,所有请求都会调用它。也就是说,我正在从服务器加载图像,因此当网络可达性发生变化时,这是方法 get 对所有请求的调用。我希望这个方法只被调用一次。

我也试过在ViewController中添加这个通知和方法,但是没有用。

任何帮助将不胜感激。提前致谢

最佳答案

你可以添加一个标志来防止代码被执行,除非状态已经像这样改变了:

var connectionState = "Connected"
let connectedState = "Connected"
let notConnectedState = "notConnected"

func checkForReachability(notification:NSNotification)
{

let networkReachability = notification.object as! Reachability;
var remoteHostStatus = networkReachability.currentReachabilityStatus()

if remoteHostStatus.value == NotReachable.value && connectedState == connectedState {

connectionState = notConnectedState
println("State Changed Not Connected")

} else if remoteHostStatus.value == ReachableViaWiFi.value && connectedState == notConnectedState {

connectionState = connectedState
println("State Changed Connected")

}
}

关于swift - 可达性更改通知应仅调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31824143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com