HTTPヘッダを確認して不要なダウンロードを避ける
同じURLに何度もアクセスに行くような場合、変更がないのにDLするのはMac側の無駄というだけでなく、サーバへの負担を考えてもあまりいいことではありません。NSURLDownloadでは実際のDL処理がはじまる前にヘッダを取得できた時にdelegateが呼び出されるので、そこでDLする必要があるかどうかを判断しましょう。
実装するdelegateはこれ。
// NSURLDownload -(void) download:(NSURLDownload*)download didReceiveResponse:(NSURLResponse*)response;
NSURLResponse のサブクラスである NSHTTPURLResponse からHTTPのヘッダが取得できるので、それを参照します。
-(void) download:(NSURLDownload*)download didReceiveResponse:(NSURLResponse*)response { if ([response isKindOfClass:[NSHTTPURLResponse class]]) { // HTTPヘッダ取得 NSDictionary* headers = [(NSHTTPURLResponse*)response allHeaderFields]; // Last-Modified を参照 NSString* lastModStr = [headers objectForKey:@"Last-Modified"]; // ここで時刻の比較とか if (...) { // DLの必要なし [download cancel]; [download release]; return; } } }