Uno*_*ome 1 debugging memory-leaks ios ipad-mini swift
我有一个我正在开发的应用程序,它肯定会在iPad mini 1上长时间使用后出现一些内存问题.调试器将开始吐出内存警告,直到它崩溃,我想知道我们的代码中的控制器导致了这个问题.
以下是调试消息的示例.
2015-03-11 17:04:02.420 PROJECT_NAME[154:4100] Received memory warning.
Run Code Online (Sandbox Code Playgroud)
我得到的Debug消息给出了一个时间戳和项目名称,括号中有一些信息.如何使用它来查找导致此问题的控制器?括号信息似乎不是代码行号,因为它之前的名称是项目名称而不是文件名.
我一直在想的另一个选择是在控制器didRecieveMemoryWarning()函数中放置一个print语句.
什么是最好在Swift中跟踪和调试这些?
如果我需要提供更多信息,请告诉我.
UPDATE
我也很想知道Swift内存泄漏的一些常见原因?在我的情况下,我使用UITableView导航控制器到另一个UITableView.第二个表视图包含一些主要使用文本和小图像的自定义单元格.我假设图像(虽然很小,主要用于审美目的)是什么导致了这个问题.我将使用旁边建议的仪器进行调试,以确切了解这是做什么的.
UPDATE
所以我一直在探测器中试图找到可能导致内存泄漏的东西,并且探测器中的所有东西似乎都是代码,这是库代码,但我做了一些筛选后发现了一些东西的引用.在我的代码中.人们一再重复如下.

此代码位于UITableViewCellNib方法的自定义唤醒内,并且与设置图像的初始状态有关,该状态将根据属于该单元格的数据的状态而改变.我猜这个动态图像加载可能导致其中一个问题.问题是,我该怎么做才能解决它?
此时,如果要确定内存问题的根源,则需要更改齿轮.使用WWDC 2013视频修复内存问题或WWDC 2012 iOS应用程序性能:内存中所示的工具.使用"仪器"中的"分配"工具,您可以识别正在分配和未分发的内容.只有这样才能继续解决问题(例如,修复任何强大的参考周期等).在确定问题的根源之前,我们无法建议您如何解决问题,而仪器将帮助您解决问题.
虽然这些演示文稿用Objective-C说明了这种做法,但Swift中的原理是相同的,并且仪器中的Allocations和Leaks工具的使用是相同的.
| 归档时间: |
|
| 查看次数: |
6631 次 |
| 最近记录: |