gpt4 book ai didi

iphone - 由于内存压力而终止的应用程序

转载 作者:可可西里 更新时间:2023-11-01 05:55:06 24 4
gpt4 key购买 nike

我有一个应用程序可以在连拍模式下拍摄图像,但是一旦拍摄图像并即将预览时,它就会崩溃并且错误显示“由于内存压力而终止应用程序”

当用户按住相机按钮时,我需要拍摄更多图像...离开按钮后,我需要将所有图像显示为幻灯片...我必须做什么?

我的代码是:

- (void)longPress:(UILongPressGestureRecognizer*)gesture {
if (gesture.state == UIGestureRecognizerStateBegan) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(takePictures)
name:AVCaptureSessionDidStartRunningNotification object:nil];
}
else if (gesture.state == UIGestureRecognizerStateEnded)
{
}


-(void)takePictures
{
[imagePicker takePicture];
}

帮帮我..

最佳答案

由于图像的高分辨率,将图像存储在 RAM 中的成本很高。更重要的是,您的观察者导致多次调用 takePicture - 太多了。当您使用 imagePicker 拍摄多张照片时,所有这些图像都会快速消耗 RAM,并且由于 iOS 没有交换空间 - 您会耗尽 RAM。 Jetsam/memorystatus 然后启动并终止您的应用程序,因为它消耗了太多内存。

解决方法:

A) 在连拍模式下少拍照片。使用一些全局变量,比如 j,在 takePictures 中递增它,但只在 j % 2 == 0 或 j %3 ==0 上拍摄实际照片(你需要调整该值)

B) 尝试至少将一些照片保存到存储中,然后从 RAM 中释放它们(删除对它们的引用)。

关于iphone - 由于内存压力而终止的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com