gpt4 book ai didi

ios - 使用 UIActivityIndi​​catorView 进行登录过程,但因为我使用的是线程,所以我无法停止它

转载 作者:行者123 更新时间:2023-11-28 09:04:37 27 4
gpt4 key购买 nike

我正在使用 UIActivityIndi​​catorView 向用户显示我正在验证登录详细信息时发生的事情。下面的代码显示了我在做什么:

func confirmLogin(sender: UIButton) {
ViewController.gVariables.gUser = userNameText.text
ViewController.gVariables.gPwd = passwordText.text
ViewController.gVariables.gLoggedIn = ""
indicatorView.startAnimating()
passwordText.text = ""

GetRemoteData.getValidationFromServer( { (svrData) -> Void in
dispatch_async(dispatch_get_main_queue()) {
self.indicatorView.stopAnimating()
self.indicatorView.hidden = true
MenuViewController.processLogin()
}
})
}

用户名和密码被传递到我的 GetRemoteData 类中的 getValidationFromServer 方法,该类处理许多其他 Web 服务事件。我将指示器设置为在调用该方法之前开始动画,但以下代码应该停止指示器,但它没有区别,因为它在另一个线程上

我该怎么做才能关闭我的指示灯?

最佳答案

getValidationFromServer 的完成 block 正在将事件指示器 View 的停止分派(dispatch)回主队列。这是正确的做法。当分派(dispatch)回主队列的代码运行时,您的指示器 View 应该停止。

如果指标 View 没有停止,只有几个合乎逻辑的原因可能会导致这种情况发生:

  1. 您可能在其他地方有一些其他代码再次启动 indicatorView(例如,在 processLogin 中)。

  2. 您可能有一些东西阻塞了主线程,阻止了分派(dispatch)到主线程的代码运行。

  3. 也许您的完成 block 根本没有被调用。

我建议在您调用 stopAnimating 的地方放置一个断点或日志消息,看看您是否完全到达那个点。从那里,您可以诊断问题的根源。但是问题中提供的代码不是问题的根源。

关于ios - 使用 UIActivityIndi​​catorView 进行登录过程,但因为我使用的是线程,所以我无法停止它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31143367/

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