【发布时间】:2012-06-27 18:24:47
【问题描述】:
我需要在主线程上执行一系列可能很长的调用(因为否则 UIKit 会退缩)。 “长”是指在 iPad 3 上 10,000 次操作每次持续 0.1 秒。
显然,一次遍历所有这些可能不是最好的主意。
我不知道如何在主线程上执行所有这些,同时留出足够的喘息空间来保持 UIKit 响应和看门狗睡着(即不会因为占用运行循环而终止)。
有人有想法吗?我的目标是 iOS 5。
具体来说,我正在尝试缓存UITextPositions,因为UITextView 显然采用非缓存的迭代方法来获取UITextPositions,这意味着它的执行速度非常非常慢positionFromPosition:textview.beginningOfDocument offset:600011,但获得positionFromPosition:aPositionAt600000 offset:11 的速度要快得多。事实上,在我的测试案例中,前者需要超过 100 秒(在主线程上!),而后者几乎是瞬时的。
【问题讨论】:
标签: objective-c ios multithreading uikit uitextview