有没有办法找出iOS中可用的内存量?我知道当可用内存不足时,系统会传递低内存警告.但是,我的应用程序有一些点,单个线程将执行复杂的任务,有时该任务耗尽足够的内存,它只是由操作系统终止(我的应用程序可以从互联网上下载图片,我将它们缩小到一个小大小...如果用户下载一个非常大的图像,我的应用程序内存不足,只是'poof').
让应用程序自发终止显然是一种糟糕的用户体验.
当我即将耗尽内存并停止任务时,有什么方法可以找到?
我想我可以将任务放在一个单独的线程上,也许系统会向主线程发送一个低内存警告,但这似乎很复杂,甚至不能保证工作.
谢谢!罗恩
我需要在Swift中以编程方式获取我的应用程序的内存使用量(MB).我找到了Objective-C的示例代码.任何人都可以帮助我将其转换为Swift.谢谢!
void report_memory(void) {
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 ) {
NSLog(@"Memory in use (in bytes): %u", info.resident_size);
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
Run Code Online (Sandbox Code Playgroud)