我在iOS应用程序中实现了一些RESTful API,目前我正在开发登录功能。用户输入用户名和密码,当按下登录时,会发生以下情况:iOS 5+ - 执行请求时冻结主线程执行
网络活动指示变为可见,文本标签变为隐藏(以及登录按钮),活动指示变为可见,带有文字“签入”的标签。然后:
dispatch_async(queue,
^{[self performSelectorOnMainThread:@selector(performAuthCall)
withObject:nil waitUntilDone:YES];});
在performAuthCall方法中,视图控制器的属性(一个布尔)被设置为是或否,取决于如果登录成功与否(I使用NSURLConnection的的sendSynchronousRequest)。如果是,则会呈现另一个视图控制器。如果不是,则显示警报。 我没有真正得到我要去的结果,控制器在执行请求之前正在测试成功的登录布尔值,并且我尝试了不同的方法,但是我无法让它正常工作并且不冻结UI。所以,我的问题是:
我怎样才能使所有的隐藏/显示的东西第一(如使可见的活动指标和“登录”标签),然后开始授权过程,等到它完成,只然后继续到另一个视图控制器或显示警报或东西?
不要阻塞主线程。 – 2013-04-10 14:21:59