我开始使用异步,但获取返回的数据变得很麻烦。然后我开始使用类方法,我相信这排除了使用委托(delegate)方法的可能性。所以我继续使用同步,知道这会是一个问题,但我认为我在解决方案上不会遇到这么大的困难。在保持 UI 交互能力的同时检索数据的最佳方式是什么?
最佳答案
同步 NSURLConnections 在 NSOperation 内部工作得很好 - 因为你同步使用它们,一个 NSOperationQueue 交给 NSOperations 会自动使用后台线程来运行它们(否则你必须做额外的工作)。
让 URL 连接在后台线程中运行是保持 UI 响应的关键,这是默认情况下异步 NSURLOperation 不会执行的操作(查看数据回调全部进入的线程)。
有时你想处理传入的数据(比如你有一个进度条),在这些情况下异步 URL 连接更好,它们仍然可以在 NSOperation 中。
因为这让你很沮丧,你可能想看看替代的 ASIHTTPRequest 库,它也是基于 NSOperation 的,但看起来它可能会让你不那么痛苦(他们有很好的示例代码):
关于iphone - iPhone 上的同步 NSURLConnection 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955620/