UIDatePicker泄漏

ste*_*hen 11 memory-leaks datepicker ios

我似乎有一个漏洞的UIDatePicker.我注意到用于设置datePickerMode以显示日期和时间的内存泄漏.但是,我只是想显示日期.我很确定这是一个框架泄漏,因为当我注释掉几个UIDatePicker属性赋值时,泄漏就会消失.此代码泄漏1个CGColor对象和1个UIDeviceRGBColor对象:

datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]];


datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this
datePicker.hidden = NO;
datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor
datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Run Code Online (Sandbox Code Playgroud)

通过评论仪器报告的违规行为,我没有泄漏:

datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]];

//datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this
datePicker.hidden = NO;
//datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor
//datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Run Code Online (Sandbox Code Playgroud)

如果没有设置日期模式,UIDatePicker就毫无价值.有没有人有解决方法?

yon*_*nja 2

这种方法对我有用:

在 xib 中创建 DatePicker 而不是编程方法。然后,在属性检查器上,将模式设置为日期。

  • 我在 iOS 8 中遇到了与原始海报相同的问题。使用 xib 的这种解决方案仍然会导致内存泄漏。手动设置“UIDatePickerModeDate”或使用属性检查器都会调用“-[_UIDatePickerMode _yearlessYearForMonth:]”,从而发生泄漏。 (5认同)