我有一个很棒的应用程序。它最初假设20 MB RAM。
我想要下载一个14 MB的歌剧。几分钟后,我下载了一部歌剧。我的应用程序RAM从20增加到34 MB。这是一个大问题,因为如果我想下载200 MB文件,我的应用程序将被杀死。(14 + 200)。我试了好几次,我得到了“收到内存警告”然后应用程序被杀了。
ASIHTTPRequest缓存我的数据。我不知道为什么。我甚至从request:didReceiveData:中删除了所有代码。但它没有帮助我。
重要:我创建了一个新的空项目并添加了此代码。在这个项目中,一切运作良好。 ASIHTTPRequest不会缓存任何数据。可能我需要更改XCode设置吗?
-(void) downloadOpera
{
self.currentPath = @"http://get-tsw-1.opera.com/pub/opera/mac/1164/Opera_11.64_Setup_Intel.dmg";
self.ASIRequest = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:currentPath]] autorelease];
ASIRequest.delegate = self;
ASIRequest.shouldContinueWhenAppEntersBackground = YES;
[ASIRequest setCachePolicy:ASIDoNotWriteToCacheCachePolicy];
[ASIRequest startAsynchronous];
}
- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data {}
- (void)requestFailed:(ASIHTTPRequest *)request {}
- (void)requestFinished:(ASIHTTPRequest *)request {NSLog(@"download finished");}
答案 0 :(得分:2)
关闭启用僵尸对象并放松......