以静默方式呼叫网址的最佳方式是什么
我目前的做法是做以下事情:
NSData *dummyData = [NSData dataWithContentsOfURL:myURL];
但是,我知道服务器返回1x1像素gif图像。所以也许有一种方法不会影响内存使用,或者更适合用于此目的。
感谢。
答案 0 :(得分:3)
dataWithContentsOfURL:
的最大问题是同步下载。这意味着线程会阻塞,直到下载完成。如果连接速度很慢或无法访问服务器,则会出现问题,直到发生超时为止。如果您在主线程上执行此操作并且阻塞时间超过约0.2秒,则用户会注意到UI在此期间没有响应。
使用NSURLConnection
进行异步下载几乎总是更好,因为这不会阻止你的线程。
请参阅Apple的URL Loading System Programming Guide,了解如何实现异步下载。它比你的单行程打字更多,但并不复杂。您可能想要使用[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]。如果您使用的是更“传统”的connectionWithRequest:delegate:
或initWithRequest:delegate:
(如前面提到的指南中所述),请不要实施connection:didReceiveData:
委托方法来忽略下载的数据。