我设置了多个 View Controller ,每个 View 中都有一个 UIDatePicker。我开始使用泄漏工具进行测试,日期选择器没有泄漏。接下来我开始使用分配工具进行测试,这就是我发现所有问题的地方。每个日期选择器都在 viewDidLoad 中初始化,我设置日期选择器模式如下:
datePicker.datePickerMode = UIDatePickerModeDate;
每次显示包含日期选择器的 View Controller 时,都会多次分配“Malloc 392 KB”,最终导致应用程序崩溃。当深入挖掘分配工具时,它指出负责的调用者是 [UISectionRowData:RefreshWithSection....]。我不知道如何解决这个问题并解决它。任何帮助都会很棒。附件是分配工具的一些屏幕截图。
最佳答案
我觉得行
datePicker.datePickerMode = UIDatePickerModeDate;
可能具有误导性,并且可能是导致泄漏的下一行
date.inputView = datePicker;
我的猜测是 date 有一个合成的 inputView 变量,它保留了该对象。鉴于您正在执行分配和初始化,并且此行上没有自动释放...
datePicker = [[UIDatePicker alloc]init]
我预计这是泄漏,但很难说,因为您可能稍后会调用发布,但如果不是,这将是我的猜测。
关于iphone - UIDatePicker UISectionRowData 巨大的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14199922/