一旦这一行发生,我就不能再使用标签控制器,而我正在测试的手机变得非常迟钝。
NSString *webData= [NSString stringWithContentsOfURL:url];
知道为什么会这样吗?
网址是:
NSURL *url = [NSURL URLWithString:str];
答案 0 :(得分:1)
问题是stringWithContentsOfURL:
是阻止呼叫。如果您要使用该方法,则应在后台线程上调用它。当您在主线程上调用它时,在完成下载字符串之前,您将无法与您的应用进行交互。
基本上,当你调用stringWithContentsOfURL:
时,调用的线程在调用完成之前将无法执行任何其他操作。如果您是从UI线程调用它,这意味着您的应用将无法响应,例如触摸事件。如果你把它放在后台线程上,或者添加更复杂的非阻塞网络,你就不会遇到这个问题。
从iOS 7开始,它也被弃用;建议您改用stringWithContentsOfURL:encoding:error:
。
答案 1 :(得分:0)
问题是我不断地拉一个小HTML,这使得事情变得冻结和滞后。
我在它周围包装了一些条件因此它只在我真正需要它时才拉出HTML,并且一切都加速了。