Ios 是否可以调试;由于内存错误而终止;?

Ios 是否可以调试;由于内存错误而终止;?,ios,objective-c,memory-management,automatic-ref-counting,Ios,Objective C,Memory Management,Automatic Ref Counting,在我的应用程序运行的某个特定(一致)点上,我始终会收到xcode错误消息 由于内存错误而终止 我找不到导致错误的代码,但我可以告诉什么代码靠近错误(使用断点) 该错误是在我的实现中返回某个单元格后直接导致的 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath UITableViewDataSource委托方法。我可以确认它返回的是有效的UIT

在我的应用程序运行的某个特定(一致)点上,我始终会收到xcode错误消息

由于内存错误而终止

我找不到导致错误的代码,但我可以告诉什么代码靠近错误(使用断点)

该错误是在我的实现中返回某个单元格后直接导致的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewDataSource
委托方法。我可以确认它返回的是有效的
UITableViewCell
,但我认为解释和发布整个方法将浪费您的时间。然而,我怀疑这可能是由快速、大规模的内存分配造成的

它明确表示由于内存错误而终止了
,而不是内存压力

我想知道信息的真正含义是什么。还有,有没有办法调试此消息?没有生成崩溃报告


我正在使用ARC和iOS 7。

编辑方案,在“诊断”下,您将找到几个保护分配的选项


问题是:它是否真的说“由于内存错误而终止”而不是“压力”?如果您的应用程序内存不足,请登录instruments。如果应用程序似乎内存不足,那么无论确切的消息是什么,您都应该关注这一点。

我也有同样的问题。我认为这导致了我的程序内存泄漏或使用了太多内存。我使用仪器,使用配置文件和程序工作良好。此外,我用设备运行程序的时间足够长,而且运行良好

我还使用iPad3rdGen进行调试,这可能是因为设备的速度太慢或有bug,看起来就像是Xcode和从Xcode运行的问题。不是内存泄漏或分配的问题


如果您确保使用仪器并在设备本身上运行应用程序,并且正常工作,则我收到了此错误,无法理解错误所在

经过一番搜索,我发现我忘了禁用僵尸

要禁用,请执行以下操作:


我也面临同样的问题(“由于内存错误而终止”) 我试过以上所有答案,但都不管用。然后我调试了我的代码,发现一个for循环运行了无限长的时间,每次都将内存分配给一个值为零的数组


谢谢。

我正在使用Tesseract进行OCR,当我的目标文本被扫描时,应该播放GIF。当GIF开始播放时,出现了一个内存峰值,从70-80MB到450MB。问题是GIF占用了太多内存,应用程序将崩溃,Xcode将显示该消息。因此,我从ViewController的superview中删除了相关的imageView

imageView.removeFromSuperview

在此之后,该应用程序仍将达到450MB,但随后立即释放并降至40MB,重新启动该设备对我来说是可行的。“由于内存错误而终止”消息停止显示。

使用Xcode 11,它以
Debug
模式启动了我的项目。我正在做一些图像记录/编辑/返回给用户,这不是您在
调试中可以使用的。一旦我转到
Release
模式,一切都进行得很顺利。

由于注意力不集中,我遇到了这种问题

我一直在调用一个函数,该函数将imageView作为子视图添加到:

override func layoutSubviews() {
    super.layoutSubviews()
}
这导致了巨大的内存使用,所以要注意这类事情

我在Xcode 11.3中遇到了类似的问题,每次按下“重试”按钮时,摄像头都会被呼叫。如果多次执行,则会发生崩溃

当我们禁用僵尸对象时,修复了此问题。以下是步骤:

  • 点击左上角显示的项目名称。这将显示项目中存在的目标列表
  • 点击编辑方案
  • 选择运行选项->诊断->取消选中僵尸对象

  • 现在,运行您的项目。它应该可以正常工作。

    我注意到的是,当我通过电缆在设备上运行我的应用程序并让它长时间处于空闲状态时,我也会遇到这个错误


    这可能是因为感觉应用程序处于空闲状态,然后将其关闭。

    我出现此错误是因为我在将全尺寸照片添加到大小为40x40的collectionView单元格中。阅读@matt的问题下方的内容。在将它们添加到单元格之前,我必须先执行此操作。

    在我的情况下,API中的一个损坏图像将我的内存从100MB提高到了4.5GB,这是由于在屏幕上显示所需的处理大小

    它明确地说是“错误”而不是“压力”。崩溃时,内存级别始终保持在15 MB左右。然后尝试启用malloc诊断。顺便说一句,你是在设备上测试的吗?我在Xcode中看到了同样的错误。我的应用程序崩溃了,因为我正在创建一个超高的UIWebView(超过20000像素)。我从来都找不到崩溃报告,也找不到在崩溃之前获取内存警告的方法。但我也在使用UIWebview。这很有趣。我得检查一下我车的高度。谢谢这是这些组件的一种常见错误。可能的原因是:不知何故,您生成的单元格太多(请检查您的计算),您的单元格大小是错误的(如除以0生成一个nan,在生成大小时,nan是一个无穷大的数字)。或者导致无限循环?现在我想知道您在测试什么设备?我在iPad3上测试。另外,我的
    UIWebView
    不仅超高,而且超宽(30000px)。每个参与这篇文章的人都在iPad3rd gen上测试过。巧合?我只使用iPad3rd gen,所以我还不确定。今天我订购了iPad mini retina,所以我可以在下周回答这个问题;)刚刚在iPhone5S上遇到这个问题。刚刚添加了谷歌的跟踪代码,不得不从arm64减少到arm7/7s,因为谷歌在构建arm64时步履蹒跚。我以为这是一个arm64/7