Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Swift 3:网络指示器赢了';连接到服务器时无法显示自己_Ios_Iphone_Swift - Fatal编程技术网

iOS Swift 3:网络指示器赢了';连接到服务器时无法显示自己

iOS Swift 3:网络指示器赢了';连接到服务器时无法显示自己,ios,iphone,swift,Ios,Iphone,Swift,我正在用Swift 3为iOS 10开发一个应用程序 目前,我正在尝试在应用程序连接到后台服务器时在状态栏中显示网络指示器(通过DispatchQueue解决) 我的问题是,指示器没有显示自己。 这是应显示指示器并连接到服务器的代码(连接需要大约5秒钟): 您正在将ui应用程序.shared.isNetworkActivityIndicatorVisible直接设置为false,这样您就没有时间查看它了。当连接完成时,将其设置为false。您应该使用此代码 Queue.async { c

我正在用Swift 3为iOS 10开发一个应用程序

目前,我正在尝试在应用程序连接到后台服务器时在状态栏中显示网络指示器(通过DispatchQueue解决)

我的问题是,指示器没有显示自己。 这是应显示指示器并连接到服务器的代码(连接需要大约5秒钟):


您正在将
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;
  }
}