如何以静默方式调用iOS中的URL

时间:2012-01-10 14:42:17

标签: objective-c ios nsdata

以静默方式呼叫网址的最佳方式是什么

我目前的做法是做以下事情:

NSData *dummyData = [NSData dataWithContentsOfURL:myURL];

但是,我知道服务器返回1x1像素gif图像。所以也许有一种方法不会影响内存使用,或者更适合用于此目的。

感谢。

1 个答案:

答案 0 :(得分:3)

dataWithContentsOfURL:的最大问题是同步下载。这意味着线程会阻塞,直到下载完成。如果连接速度很慢或无法访问服务器,则会出现问题,直到发生超时为止。如果您在主线程上执行此操作并且阻塞时间超过约0.2秒,则用户会注意到UI在此期间没有响应。

使用NSURLConnection进行异步下载几乎总是更好,因为这不会阻止你的线程。

请参阅Apple的URL Loading System Programming Guide,了解如何实现异步下载。它比你的单行程打字更多,但并不复杂。您可能想要使用[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]。如果您使用的是更“传统”的connectionWithRequest:delegate:initWithRequest:delegate:(如前面提到的指南中所述),请不要实施connection:didReceiveData:委托方法来忽略下载的数据。