我对包含文本字段的视图控制器存在一些内存问题。
摘要:
UIViewController
(我称之为“VC1”)。pushViewController
)UITableViewController
(“VC2”)并转回。pushViewController
)UIViewController
(“VC3”)并转回。VC1和VC2在VC1中作为属性引用,它们必须保留在内存中。当用户解散VC1然后我释放所有。
VC3包含一个简单视图,只有一个UITextField在becomeFirstResponder
被调用时viewWillAppear
。
的问题:
当我打开VC1然后打开VC2时,转回并解雇:一切正常,应用程序返回相同的初始“活字节数”(即1,20MB)。当我打开VC1然后打开VC3时,字节变为2MB。当我在文本字段中写入内容时,分配上升到2,50MB
此时,仪器发现内存泄漏为16byte,ProofReader为负责人库,PRRfInit为负责人,
转回VC1并解雇后,分配仍为2,50MB 在仪器中按类别排序我检查VC1,VC2和VC3有0个活字节,但总体仍然是2,50MB
还涉及键盘吗?
答案 0 :(得分:1)
我假设你在设备上进行测试,而不是模拟器 - 模拟器会产生不正确的结果。
你的应用程序使用的总内存作为内存泄漏的衡量标准毫无意义 - 在有空闲内存的情况下,iPhone将尝试缓存尽可能多的数据 - 它会加载库并将它们留在内存中以防万一将再次使用它们。这只是一个问题,当你开始用完,然后它会为你排序。
来自库的16byte泄漏是相当无关紧要的(假设它只发生一次) - Apple的库最终泄漏的次数超过了我的经验。
有很多更好的方法可以花时间;)
PS ProofReader是您所包含的库还是Apple SDK的一部分?