1

我有一个大应用程序。它最初假定为 20 MB RAM。

例如,我想下载一个 14 MB 的歌剧。几分钟后,我下载了一部歌剧。我的应用程序 RAM 从 20 MB 增加到 34 MB。这是个大问题,因为如果我想下载 200 MB 的文件,我的应用程序将被杀死。(14+200)。我试了几次,我得到“确实收到内存警告”,然后应用程序被杀死了。

ASIHTTPRequest 缓存我的数据。我不知道为什么。我什至从请求中删除了所有代码: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");}
4

1 回答 1

2

关闭启用僵尸对象并放松...

于 2012-05-13T15:05:58.083 回答