Почему UIDatePicker без функциональности, добавленный в мое приложение через IB, может вызвать сбой моего приложения? - PullRequest
0 голосов
/ 19 мая 2010

Я только что добавил UIDatePicker в приложение для iPad с помощью IB, связал его с выходом в коде, сохранил в IB, добавил UIPickerViewDelegate в свой UIViewController в коде, а также добавил выход UIDatePicker в коде. Когда я собираю и запускаю, приложение запускается, но периодически прерывается, когда я пытаюсь открыть всплывающее окно, содержащее средство выбора даты. Я говорю с перебоями, потому что представление всплывающего окна иногда открывается успешно, но не более одного раза (оно всегда вылетает при втором открытии всплывающего окна, если оно не падает в первый раз). Также в консоли я получаю следующее сообщение

objc[594]: FREED(id): message lastClickRow sent to freed object=0x6015a70
  1. Почему это происходит и как я могу это исправить?
  2. Что означает это консольное сообщение?

Возможно, стоит упомянуть, что всплывающее представление также содержит табличное представление вместе с элементом управления datepicker.

Большое спасибо заранее за вашу помощь!

Ответы [ 3 ]

1 голос
/ 24 июля 2010

Мне тоже было нелегко пройти через эту проблему, но, наконец, я решил ее. Вместо добавления UIDatePicker в конструктор интерфейса добавьте его динамически или программно. Это, безусловно, сработало для меня, и надеюсь, что это работает и для вас. UIDatePicker * _datePicker = [[UIDatePicker alloc] initWithFrame: frame]; [self.view addSubview: _datePicker];

0 голосов
/ 01 июня 2010

Одна забавная вещь, которую вы могли бы сделать, это освободить ее от ссылки UIPopOverController после передачи ей сообщения [presentPopover ...], так же, как мы делаем это при передаче сообщения presentModalViewController в UIViewController. Я тоже столкнулся с этой проблемой, одна вещь, которую вы можете сделать, это что-то вроде

self.funnyPopoverController = aPopoverController;

(конечно, здесь у funnyPopoverController есть свойство type).

В противном случае трудно предсказать, что происходит, не глядя на код в течение долгих долгих часов time_t:)

0 голосов
/ 20 мая 2010

Это почти наверняка проблема подсчета ссылок. Кажется странным, что ваш контроллер представления (который, я предполагаю, является делегатом вашего UIDatePicker, поскольку именно там вы реализовали протокол) будет освобожден во время обычных операций, но это первое, на что вы должны обратить внимание - что делегат установлен и остается действительным объектом во время отображения всплывающего окна.

...