我正在从服务器加载数据并异步处理响应。使用 NSURLConnection。对委托的每次调用 connection:didReceiveData: 正在处理该块。
然而,就在接收到一大块数据之前,我请求一个文本视图滚动到新行,即[textView scrollRangeToVisible:]。
问题是,在收到所有数据之前,textView 通常不会滚动。这可能会持续一段时间,并使 UI 看起来挂起。
为了尝试解决它,我认为主线程被锁定处理数据,所以我应该把它分成更小的块。
所以我改用代码来分解连接中收到的数据:didReceiveData 以执行较小的操作,并使用
[self performSelectorOnMainThread:withObject:smallerChunk waitUntilDone:FALSE]
想法是它将一堆事件放在运行循环上,并尽可能处理 scrollRangeToVisible 。
但是,这是行不通的。至少不可靠。我错过了什么?