как остановить nsurlconnection? - PullRequest
0 голосов
/ 12 марта 2012

Я использую соединение url с дескриптором nsfile для получения данных с сервера, это код, который я использую,

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response {

filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Ep1.mp4"; 

[[NSFileManager defaultManager] createFileAtPath:filename contents:nil attributes:nil];
file =[NSFileHandle fileHandleForUpdatingAtPath:filename] ;

if (file)   {

    [file seekToEndOfFile];
}} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {


if (file)  { 

    [file seekToEndOfFile];

} [file writeData:data]; }


- (void)connectionDidFinishLoading:(NSURLConnection*)connection {


[file closeFile];
}


-(void)downloadFile{

targetURL = [NSURL URLWithString:@"http://some url "];

DownloadRequest = [NSURLRequest requestWithURL:targetURL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:50.0];
DownloadConnection = [[NSURLConnection alloc] initWithRequest:DownloadRequest delegate:self];

if (DownloadConnection) {
    receivedData = [NSMutableData data];
}
}

Я хочу прервать соединение при загрузке файла, поэтому я создаю кнопку --->

- (void)buttonPressed:(id)sender
{
DownloadConnection = [[NSURLConnection alloc] initWithRequest: DownloadRequest delegate:self];
[ DownloadConnection cancel];   
}

но не работает, данные все еще получают, я что-то упустил, понял? или что я могу сделать?

1 Ответ

4 голосов
/ 15 марта 2012

Отредактировано: Это решение, которое я нашел:

 - (void)buttonPressed:(id)sender
{
DownloadConnection = [[NSURLConnection alloc] initWithRequest: DownloadRequest delegate:self];
[ self.DownloadConnection cancel];   
}

добавить себя, чтобы отменить текущее соединение ...

...