带有NsurlConnection的UIViewActivityIndicator不会停止swift中的动画

带有NsurlConnection的UIViewActivityIndicator不会停止swift中的动画,swift,ios8,Swift,Ios8,我正在点击按钮调用callDailyQuotes方法。从服务器下载数据时,activityIndicator开始设置动画,但随后,activityIndicator停止设置动画 以下是相关代码: self.activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray self.activityIndicator.startAnimating() let qualityOfServiceClass

我正在点击按钮调用
callDailyQuotes
方法。从服务器下载数据时,
activityIndicator
开始设置动画,但随后,
activityIndicator
停止设置动画

以下是相关代码:

self.activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
self.activityIndicator.startAnimating()
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
   self.callDailyQuotes()
   dispatch_async(dispatch_get_main_queue(), { () -> Void in     
            })
        })

func callDailyQuotes(){
//calling nsurlconnection synchronously
 self.activityIndicator.stopAnimating()
}

发生了什么事情使得
activityIndicator
停止动画制作?

您必须在主线程中执行
self.activityIndicator.stop animating()
调用,因此我的建议是将其移动到已添加但保留为空的
dispatch\u async
中:

self.activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
        self.activityIndicator.startAnimating()
        let qualityOfServiceClass = QOS_CLASS_BACKGROUND
        let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
        dispatch_async(backgroundQueue, {
            self.callDailyQuotes()
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.activityIndicator.stopAnimating()
            })
        })

func callDailyQuotes(){
//calling nsurlconnection synchronously
}

将停止活动指示器的代码放在主线程中。你的意思是在主队列中吗?是的,在主队列中我编辑了你的问题,使其以问题陈述开头。我把你的求助变成了一个实际问题。祝你好运我试过了,但它不起作用CtVityIndicator没有动画,但在问题中,你说它开始动画,它只是没有停止,然后我按照你的建议更改了代码。现在它没有开始动画,我想它开始和停止得太快,以至于它不可见。您是否有
callDailyQuotes
的实际实现?完成后指示灯立即停止是的。我如何延迟?因此指示灯显示一段时间?