我有一个简单的问题,如果我在需要释放request对象时使用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];谢谢
发布于 2011-01-11 22:50:35
在实现文件中快速搜索一下就会发现它将被自动释放。
+ (id)requestWithURL:(NSURL *)newURL
{
return [[[self alloc] initWithURL:newURL] autorelease];
}发布于 2011-01-11 22:53:41
您需要记住,如果接收对象的方法包含new、copy或init,则您始终要负责释放该对象。
在这种情况下,您不需要释放它。ASIHTTPRequest类autorelease为您提供了它。
发布于 2011-01-11 23:26:59
你的请求在你的代码中是自动释放的,所以你不需要释放它(正如其他人所说的)。
然而,您正在启动一个异步请求-它将在将来的某个时候完成/失败,如果它与其他对象相关联,这些对象将在视图退出时被释放,那么您可能会使自己面临崩溃。因此,我建议您将requestForm设置为您的类的一个属性(这样当您将请求分配给self.requestForm时,它将为您保留),并在请求完成时显式释放& nil它。
如果这是一个非常简单的应用程序,只有一个视图,那么你可以不使用它。
https://stackoverflow.com/questions/4658834
复制相似问题