アプリでいくつかのファイルをダウンロードするために RestKit を使用しています。ファイルが大きすぎない限り、すべてが魅力的に機能します。残念ながら、大きなビデオ ファイル (約 230 MB) をダウンロードしようとしましたがmemory warning
、アプリがクラッシュしました。
次の行でダウンロードを開始します
[[RKClient sharedClient] get:[NSString stringWithFormat:@"/%@", listItem.filename] delegate:self];
デリゲートメソッドでは、ローカルに保存しますappDirectory/Library/Caches/
- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response
{
NSURL * url = [NSURL fileURLWithPath:[cacheDirectory stringByAppendingPathComponent:response.URL.lastPathComponent]];
[[response body] writeToURL:url atomically:YES];
}
Instruments でアプリのメモリ リークをチェックしLive Bytes
た*Overall Allocations*
ところLow Memory Alerts
、約100 MB
. それでも漏れはありませんでした。
ファイルの保存を担当する行 ( [[response body] writeToURL:url atomically:YES];
) を削除しても何も変わらなかったので、問題は RestKit のどこかにあると思います。
調査中に、ファイルを直接ダウンロードできる方法に出くわし、そのような方法でASIHTTPRequest
問題を解決できると思いましたが、よくわかりません.
私が逃した直接ダウンロードのRestKitに可能性はありますか?
また
私が知っておくべきRestKitでファイルをダウンロードするより良い方法はありますか?