iphone,ipad的网络框架很多都是用ASIHttpRequest的,这个框架整体来讲还是不错,但是有一些使用的陷阱和小缺陷
如:
self.request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:imgURL]];
self.request.delegate = self;
request.didFinishSelector = @selector(requestDidFinish:);
request.didFailSelector = @selector(requestDidFail:);
[request setDownloadDestinationPath:imgFilePath];
[request setAllowResumeForFileDownloads:YES];
[request startAsynchronous];
在self被释放后常常出现系统Crash,这个出现在如下情况,在几个简单窗口(有网络请求的)快速切换会出现。我们常常做的是是
[request release];
可是一个request被提交后,在某个状态满足后会调用selector,当前的对象(self)被释放后,再使用就会crash.最安全的方式
self.request.delegate = nil;
[self.request cancel];
self.request = nil;