Iphone:需要使用ASIFormDataRequest发布

时间:2011-01-11 14:48:19

标签: iphone asihttprequest

我有一个简单的问题,如果我在需要发布请求对象时使用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];

由于

3 个答案:

答案 0 :(得分:3)

您需要记住,如果您收到对象的方法包含newcopyinit,则您始终有责任释放该对象。

在这种情况下,您无需释放它。 ASIHTTPRequestautorelease适合您。

答案 1 :(得分:1)

在实施文件中快速搜索显示它将被自动释放。

+ (id)requestWithURL:(NSURL *)newURL
{
    return [[[self alloc] initWithURL:newURL] autorelease];
}

答案 2 :(得分:1)

您的请求已在您的代码中自动释放,因此您无需释放它(正如其他人所说)。

但是,您正在启动一个异步请求 - 它将来会在某个时间完成/失败,并且如果它与其他对象相关联,当视图退出时您将被释放,这可能会使您自己处于崩溃状态。所以我建议你想让requestForm成为你的类的属性(所以当你将请求分配给self.requestForm时,它将为你保留),并明确释放&在请求完成时没有。

如果它是一个只有一个视图的非常简单的应用程序,你可能会在没有它的情况下逃脱。