ユーザーがimageWithContentsOfFileを待たないように、大きな画像をキャッシュするアプリがあります。原則として、前後の画像をキャッシュします。
1) iPad で利用可能なメモリに基づいて、このキャッシングを適応させることはできますか? はいの場合、しきい値は何ですか? 以下は、使用可能なメモリを計算する関数です
-(void) report_memory {
struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info(mach_task_self(),
TASK_BASIC_INFO,
(task_info_t)&info,
&size);
if( kerr == KERN_SUCCESS ) {
Log(@"Memory in use (in bytes): %u", info.resident_size);
} else {
Log(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
2) (非公開/文書化されていない API を除いて) メモリ レベルの警告を知る方法がないことはわかっています。しかし、確認のために、何らかの方法でそれらを使用できますか.
3)現在、3つの画面(6つの画像がある)をキャッシュすることを考えています。ViewControllerがメモリ警告を受け取った場合、表示されている画面を除くすべての画面をアンロードし、キャッシュする画面の数を2(4つの画像)にリセットします。しかし、キャッシュが可能な量よりも少ないか、状況によっては4つをロードしてもクラッシュするため、最適化されていません。