Objective c NSURLConnect仅工作1次
我正在尝试做一个请求,但它只在第一次工作 这是我的密码:Objective c NSURLConnect仅工作1次,objective-c,xcode,Objective C,Xcode,我正在尝试做一个请求,但它只在第一次工作 这是我的密码: NSArray *infos = [rows objectAtIndex:indexPath.row]; NSString *thumbPath = thePath; NSURLRequest *thumbRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:thumbPath]cachePolicy:NSURLRequestUseProtocolCachePolicy
NSArray *infos = [rows objectAtIndex:indexPath.row];
NSString *thumbPath = thePath;
NSURLRequest *thumbRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:thumbPath]cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
self->thumbConnection = [[NSURLConnection alloc] initWithRequest:thumbRequest
delegate:self
startImmediately:YES];
self->thumbData = [[NSMutableData alloc]init];
何时收到响应
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
if (self->thumbData == nil) {
self->thumbData = [[NSMutableData alloc]init];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
self.thumbImage.image = [UIImage imageWithData:self->thumbData];
self.thumbActivityView.hidden = YES;
self->thumbData = nil;
}
下载完成时:
-(无效)连接IDFinishLoading:(NSURLConnection*)连接{
self.thumbImage.image = [UIImage imageWithData:self->thumbData];
self.thumbActivityView.hidden = YES;
[self->thumbData release];
self->thumbData = nil;
}
当超时或其他错误发生时,请使用以下方法:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[self->thumbData release];
self->thumbData = nil;
self.thumbActivityView.hidden = YES;
[thumbConnection release];
self->thumbConnection = nil;
}
如果它不是零,就不要再分配它。最好还是在对象的init方法中分配它,并在对象的dealloc方法中释放它第二次或第三次会发生什么?我可以在那里看到一个
release
调用,所以它看起来像MRR。但是,您似乎并没有发布所有您alloc
的内容。这可能就是问题所在。您是否每次都需要分配一个新的连接,或者是否可以重新使用现有的连接(如果有)?我不知道,但我怀疑您可以重新使用现有的请求。我需要在连接中执行一个新请求。如果它是非nil
,请不要再次分配它。最好还是在对象的init
方法中分配它,并在对象的dealloc
方法中释放它。