iOS Swift 3:网络指示器赢了';连接到服务器时无法显示自己
我正在用Swift 3为iOS 10开发一个应用程序 目前,我正在尝试在应用程序连接到后台服务器时在状态栏中显示网络指示器(通过DispatchQueue解决) 我的问题是,指示器没有显示自己。 这是应显示指示器并连接到服务器的代码(连接需要大约5秒钟):iOS Swift 3:网络指示器赢了';连接到服务器时无法显示自己,ios,iphone,swift,Ios,Iphone,Swift,我正在用Swift 3为iOS 10开发一个应用程序 目前,我正在尝试在应用程序连接到后台服务器时在状态栏中显示网络指示器(通过DispatchQueue解决) 我的问题是,指示器没有显示自己。 这是应显示指示器并连接到服务器的代码(连接需要大约5秒钟): 您正在将ui应用程序.shared.isNetworkActivityIndicatorVisible直接设置为false,这样您就没有时间查看它了。当连接完成时,将其设置为false。您应该使用此代码 Queue.async { c
您正在将
ui应用程序.shared.isNetworkActivityIndicatorVisible
直接设置为false
,这样您就没有时间查看它了。当连接完成时,将其设置为false。您应该使用此代码
Queue.async {
communication.sharedInstance.initCommunication(address: "195.202.147.81", port: 1217)
dispatch_async(dispatch_get_main_queue()) {
UIApplication.shared.isNetworkActivityIndicatorVisible = false;
}
}
你认为
async{…}
做什么?您甚至在通信开始之前就关闭了指示灯您可以很容易地通过代码单步执行或添加print
语句来验证。更新:我认为应该这样编写。我将其移动到InitCommunication
函数。您的解决方案有哪些优点?一旦在后台完成通信,我们就必须转到主队列来更新UI。明白了!刚刚将UIApplication.shared.isNetworkActivityIndicatorVisible=true
移动到连接我的应用程序的函数,现在它工作正常。
Queue.async {
communication.sharedInstance.initCommunication(address: "195.202.147.81", port: 1217)
dispatch_async(dispatch_get_main_queue()) {
UIApplication.shared.isNetworkActivityIndicatorVisible = false;
}
}