UIDatePicker утечки

Похоже, у меня есть дырявый 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;

Комментируя строки инструментов, о которых сообщается как обидные, я не получаю утечек:

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;

Если хотя бы режим даты не установлен, UIDatePicker бесполезен. У кого-нибудь есть обходной путь?

 Kevin11 окт. 2012 г., 03:50
Вы используете ARC?
 barley11 окт. 2012 г., 03:08
Вы проверили утечку на устройстве? Или только на симуляторе? Иногда в симуляторе есть ошибка утечки памяти, которой нет на устройстве.
 Carl Veazey11 окт. 2012 г., 06:41
Что касается обходного пути, насколько плоха утечка?
 stephen12 окт. 2012 г., 01:25
@ barley Спасибо за напоминание. Нет утечек на устройстве. Я не использую ARC. Инструменты сообщают 50B каждый раз, когда сборщик даты освобождается. Я не ожидаю, что пользователи будут использовать это с высокой частотой.
 ninjaneer15 дек. 2012 г., 05:46
Имея ту же проблему. У меня включен ARC. Ничего страшного, если пользователи не будут так часто использовать средство выбора даты.

Ответы на вопрос(1)

Создайте DatePicker в xib вместо программного подхода. Затем в инспекторе атрибутов установите для параметра «Режим» значение «Дата».

 yoninja02 сент. 2013 г., 05:09
Я считаю, что это не будет причиной для отказа.
 stephen21 дек. 2012 г., 06:13
Я предполагаю, что это означает, что у вас были проблемы раньше; и что вы решили проблему, сделав это. Если да, в какой среде вы работали? А что вы пробовали, что раньше вызывало проблему?
 ggould7522 мая 2013 г., 09:22
Утечка все еще здесь в iOS 6.1.4. Я также пытался установить дату с помощью setDate: animated: до и после того, как средство выбора даты отображается, но ничего не меняется ... В любом случае я испытываю утечку, когда средство выбора удалено из представления, а не когда оно создано ,
 JRG-Developer14 янв. 2013 г., 08:51
Я тоже могу подтвердить, что если вы установите эти атрибуты в IB (а не программно),UIDatePicker не показывает утечку в инструментах. ОднакоUIDatePicker будет утечка, если вы установите указанные атрибуты позже через код (даже еслиUIDatePicker создается в IB). Это явно утечка в коде фреймворка, и, к сожалению, до тех пор, пока Apple не исправит это, нет хорошего обходного пути, кроме как признать, что это будет утечка ...: /
 bejonbee04 февр. 2015 г., 14:31
У меня та же проблема, что и у исходного постера в iOS 8. Такое решение использования xib все еще вызывает утечку памяти. Ручная настройкаUIDatePickerModeDate или с помощью инспектора атрибутов оба вызова-[_UIDatePickerMode _yearlessYearForMonth:] который протекает.

Ваш ответ на вопрос