在我的应用程序中,从 iPad 相机拍摄超过 100 张照片后,我收到内存不足警告和应用程序崩溃。我使用了一些内存管理工具,例如仪器泄漏-分配,仪器没有显示任何泄漏。但是当我使用分配时,它显示 malloc 16bytes 每次打开相机视图并拍照时使用更多分配,打开我的自定义视图。
我做了谷歌,我找到了代码片段来了解应用程序使用了多少内存
-(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 ) {
NSLog(@"Memory in use (in bytes): %u", info.resident_size);
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
上面的代码片段也给了我与仪器相同的结果,当我打开相机和自定义 VC 时,应用程序使用更多分配。
在我的代码中,我使用了一个类别来使用函数 CGContextRef、CGColorSpaceRef、CGImageRef、imageWithCGImage 等创建缩略图。它是否会导致崩溃?
有没有其他方法可以找出或追踪应用程序崩溃/收到内存警告的原因?或者在仪器中还有其他更好的方法来发现这一点吗?
谢谢..