我有一个简单的问题,如果我在需要发布请求对象时使用ASIFormDataRequest?
NSURL *url = [NSURL URLWithString:@"url"];
ASIFormDataRequest *requestForm = [ASIFormDataRequest requestWithURL:url];
[requestForm addPostValue:[[NSUserDefaults standardUserDefaults] stringForKey:@"user"] forKey:@"user"];
[requestForm setRequestMethod:@"POST"];
[requestForm setDelegate:self];
[requestForm startAsynchronous];
由于
答案 0 :(得分:3)
您需要记住,如果您收到对象的方法包含new
,copy
或init
,则您始终有责任释放该对象。
在这种情况下,您无需释放它。 ASIHTTPRequest
类autorelease
适合您。
答案 1 :(得分:1)
在实施文件中快速搜索显示它将被自动释放。
+ (id)requestWithURL:(NSURL *)newURL
{
return [[[self alloc] initWithURL:newURL] autorelease];
}
答案 2 :(得分:1)
您的请求已在您的代码中自动释放,因此您无需释放它(正如其他人所说)。
但是,您正在启动一个异步请求 - 它将来会在某个时间完成/失败,并且如果它与其他对象相关联,当视图退出时您将被释放,这可能会使您自己处于崩溃状态。所以我建议你想让requestForm成为你的类的属性(所以当你将请求分配给self.requestForm时,它将为你保留),并明确释放&在请求完成时没有。
如果它是一个只有一个视图的非常简单的应用程序,你可能会在没有它的情况下逃脱。