NSMutableURLRequest 的问题
Posted
技术标签:
【中文标题】NSMutableURLRequest 的问题【英文标题】:Problem with NSMutableURLRequest 【发布时间】:2010-02-20 21:11:00 【问题描述】:我有以下方法
-(void)request
responseData = [[NSMutableData data] retain];
NSString *post = [NSString stringWithFormat:@"id=%d&a_id=&d",1,1];
NSLog(@"%@",post);
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:kWebURL@"/req/request.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
[postLength release];
[postData release];
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
[connection release];
我的问题是 nsmutableurlrequest 对象存在泄漏。我想我应该在某个地方发布它,但是当我尝试这样做时,我得到了一个 exec_bad_access。无论我在哪里尝试释放它,我都会在 connectionDidFinishLoading 方法的末尾收到该错误。
编辑:看起来我可以释放 NSURLConnection 对象或 NSMutableURLConnection 对象。
如果我在应该删除它们的时候尝试删除它们,我会得到一个 exec_bad_access
【问题讨论】:
【参考方案1】:我相信您的问题在于您发布的 postLength 和 postData。您没有分配其中任何一个,而是使用方便的方法创建了它们。你应该把这两行去掉,然后你应该可以释放你的 NSMutableURLRequest。
【讨论】:
是的,看起来它与崩溃有关。不知道我为什么要这样做...我在某个地方看到了发布的代码并且不假思索地使用了它...非常感谢!以上是关于NSMutableURLRequest 的问题的主要内容,如果未能解决你的问题,请参考以下文章
POST 请求未考虑 NSMutableURLRequest 超时间隔
NSURLConnection、NSMutableURLRequest 设置范围错误
如何使用 AFNetworking 向现有 NSMutableURLRequest 添加参数?