gpt4 book ai didi

ios - 当我尝试释放我的类的对象时,ASIHTTP 请求不起作用并且应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 04:58:29 25 4
gpt4 key购买 nike

在我的主类中,我正在创建我的 AlbumFetcher 类的对象,并调用一些函数并释放该对象。

AlbumFetcher *_albumFetcher = [[AlbumFetcher alloc] init];
[_albumFetcher getData];
[_albumFetcher release];

当我在调用某些函数后释放对象时,ASIHTTP 请求完成方法未调用并且应用程序崩溃。但是当我不释放该对象时,一切都工作正常。我必须做什么

AlbumFetcher *_albumFetcher = [[AlbumFetcher alloc] init];
[_albumFetcher getData];
//[_albumFetcher release]; // now ASIHTTP Request n everything is working fine .....

在AlbumFetcher类中我有这个功能...

-(void)getData{

_fullsizeURL = [NSURL URLWithString:@"http://mysite.com/site/alb_iphone"];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:_fullsizeURL];
[request setDelegate:self];
[request setDidFinishSelector:@selector(albumrequestDone:)];
[request setDidFailSelector:@selector(albumrequestFailed:)];
[request startAsynchronous];
}
- (void)albumrequestDone:(ASIHTTPRequest *)request{
// here my code
}
- (void)albumrequestFailed:(ASIHTTPRequest *)request{
// here my code
}

那么我哪里出错了,哪里必须释放对象。

最佳答案

在您的情况下,ASIHTTPRequest 异步工作,即在另一个线程中。因此,您的请求在 [_albumFetcher getData] 完成后尚未完成。

albumrequestDone:requestalbumrequestFailed:request 完成之前,您的请求尚未完成。我的建议是将 [self release] 放在这两个函数的末尾。

关于ios - 当我尝试释放我的类的对象时,ASIHTTP 请求不起作用并且应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com