我有一个大应用程序。它最初假定为 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");}