问题标签 [didreceivememorywarning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
593 浏览

iphone - UIImagePicker 改变我的背景?

我正在打开一个图像选择器,相机样式,作为 modalviewcontroller。如果我打开图像选择器,然后取消,之前的视图会恢复正常。

如果我打开图像选择器,拍照,然后返回并取消,我之前的视图的背景会丢失,我可以看到主窗口。有谁知道这怎么可能发生?

0 投票
2 回答
3885 浏览

iphone - 如何在 OpenGL 应用程序中响应 didReceiveMemoryWarning

我的应用程序使用大量内存。通常它运行良好,但在一段时间未重新启动的已加载设备上,它将因臭名昭著的内存不足错误而被抛弃。

我想响应didReceiveMemoryWarning并释放我的一些缓存。

但我的问题是我的应用程序基于 OpenGL ES 模板并且没有视图控制器。它只有一个 App Delegate,它包含对 glView 的引用。

我可以做些什么来捕获didReceiveMemoryWarning消息以便我可以响应?

0 投票
3 回答
588 浏览

iphone - 缩小 iPhone 内存?

我在我的应用程序中注意到,如果我的手机长时间没有关机,didReceiveMemoryWarning 的调用速度会更快。我的应用程序可以访问的内存池似乎随着时间的推移而缩小。

有没有其他人注意到这一点,是否有解释?有没有我可以采取的措施来防止这种情况发生?

当我使用大量内存拍摄和处理图片时,我注意到这种情况发生了。关闭电源并重新启动手机会有所帮助。我的应用程序可以访问的内存是否可能正在缩小,或者现有内存是否碎片化并且重新启动会对现有内存进行碎片整理?

对此问题的任何解释或帮助都会很棒。谢谢。

0 投票
2 回答
1235 浏览

iphone - 我的 iphone 应用程序收到内存警告并在 6.8MB 时被杀死

我的应用程序有一个线程执行超过一分钟的耗时工作,该应用程序消耗大约 6.8MB 的内存。一段时间后我收到一个内存警告,然后它被杀死。没有什么可以释放的,我什至没有使用 7MB 的内存...快让我发疯...请给点建议?

0 投票
7 回答
41321 浏览

iphone - 收到内存警告。显示 UIImagePickerController 时 Level=1

这真让我抓狂!!!

每当我尝试显示具有 sourceType = UIImagePickerControllerSourceTypeCamera 的 UIImagePickerController 时,我都会收到“已收到内存警告。Level=1”。

这是我的 viewDidLoad 中的代码,我在其中进行了设置:

这就是我如何以模态方式呈现它..

}

结果...... UIImagePicker 开始显示然后繁荣......我收到内存警告......每次!有趣的是,如果我切换到 sourceType = UIImagePickerControllerSourceTypePhotoLibrary ...一切正常。

我到底错过了什么或做错了什么?我要做的就是展示相机,拍摄并保存照片。

仅供参考 - 我正在我的 3GS 设备上进行测试。

感谢任何能提供帮助的人 :)

0 投票
3 回答
4240 浏览

iphone - 如何判断一个引用的对象是否已在 Objective-c 中被释放?

升级到 iPhone OS 4.0 后,在应用程序之间切换后应用程序开始崩溃。当应用程序收到内存警告时,应用程序在同一个地方崩溃。

当收到内存警告时,似乎某些对象会自动释放,然后当我们尝试使用释放的对象时,应用程序会崩溃。

是否可以测试一个对象是否已被释放,以便我们可以重新分配它们?

0 投票
1 回答
2403 浏览

iphone - UIImagePickerController 在内存警告后不会关闭

我有一个 UIImagePickerController 作为我的视图控制器的综合属性。

一般来说,它工作正常(拍摄/挑选照片,回电等)。但是,当我收到内存警告时(在视图控制器上调用了didReceiveMemoryWarning),尽管应用程序似乎可以优雅地处理它(viewDidLoad 被调用以重新设置视图而没有任何无关的视图等 - 应用程序不会崩溃) UIImagePickerController 让我拍照,UIImagePickerController 的视图(在本例中为相机)不会被关闭。相机只是停留在屏幕上,重拍和使用按钮灰显。

我已经尝试在 viewDidUnload 中设置 self.imagePicker = nil 并且也尝试过不这样做(因此视图控制器在内存警告后需要将其关闭时并没有“忘记”它)。

内存警告后拍照后,imagePicker确实回调成功(didFinishPickingMediaWithInfo),但imagePicker视图仍然在屏幕上。

任何帮助/想法将不胜感激。

0 投票
1 回答
2117 浏览

iphone - didReceiveMemoryWarning 建议(后台的多任务应用程序太多)?

请帮忙,我不知道我与 didReceiveMemoryWarning 到底有什么关系。我的应用程序启动良好,但是当运行的后台应用程序过多时,它会收到内存警告并退出。我只想显示一个警报,要求用户退出一些后台应用程序。

我有一个 appDelegate,在它的窗口中有一个我的 viewController 的视图,它有另一个视图分配(复合)有两个子视图(一个 XIB 在一个 OpenGL 视图上),这被设置为 viewController 中的一个 cameraOverlayView。

我试图在警告时将所有内容合二为一,但仍然退出。我必须在每个子视图中实现 didReceiveMemoryWarning 吗?我可以以某种方式“强制退出”初始化过程吗?

0 投票
3 回答
794 浏览

iphone - 响应 didReceiveMemoryWarning 异常

所以我有一张叠加了一堆 MKPolygonViews 的地图。当我在它上面放上一对时,如果我把它们都放在系统上,我会向系统发送一个 didReceiveMemoryWarning ,我通过删除覆盖层来响应该系统。

现在我想知道发生这种情况时它实际使用了多少内存,它只有 10MB 实际内存和 100MB 虚拟内存。当时的 SMS 应用程序使用 30MB 内存并且运行良好。还有其他应用程序,例如邮件,使用的不仅仅是我的应用程序。SpringBoard 增加了 5MB,所以没什么特别的。这也在 iPhone 4 上运行,所以应该有足够的内存(我的计算是大约 256MB 仍然可用)。

在我移除覆盖层后,内存占用仅下降约 1MB,当我重新打开它们时,它会上升 1MB,所以没有什么不寻常的。

那么发生了什么?内存警告是否来自图形内存或其他东西?这些叠加层的性能是否受到图形处理器的限制?当它们全部打开时,它在移动时确实使用了大约 60%,但这并不能解释糟糕的性能。

任何方向的答案将不胜感激。

编辑:Springboards 虚拟内存在覆盖打开的情况下上升到 450MB,一旦达到 512MB,它就会发送内存警告。这是导致问题的原因吗?总 VM 始终高于 512MB,因此它必须为 VM 使用闪存存储,因此不应导致内存警告

0 投票
0 回答
579 浏览

uinavigationcontroller - UINavigationController 和内存不足警告

我使用具有以下视图控制器结构的 UINavigationController(包含在我的应用程序的主 NIB 文件中):

我所有的视图控制器的视图都是从使用与视图控制器类(RootVC.xib 等)相同的名称的 NIB 文件加载的。

问题: 当我将 LevelOneVC、LevelTwoVC 推送到导航堆栈上,然后模拟/获取内存不足警告时,会发生以下情况:弹出最上面的视图控制器 (LevelTwoVC) 后,尝试弹出随后的-当前视图控制器(LevelOneVC),返回按钮向右飞出,但不出现RootVC的视图。

看起来,对于导航控制器,RootVC 现在确实是当前控制器,但“只有”它的视图无法从 NIB 文件重新加载。

关于为什么会发生这种情况的任何想法?谢谢!