2012-03-12 4 views
0

Редактирование: хотя в моих комментариях есть рабочий пример iOS 5, я все еще получаю это для других версий. Я теперь выполнил тест, чтобы регистрировать и деактивировать ячейки, если iOS 5, но это действительно озадачивает!UITableViewCell получение _accessibilityUpdateRemoveControl на удаленном экземпляре

все еще получение _accessibilityUpdateRemoveControl исключения, странная неприятность, похоже, что-то с элементами управления редактирования, ничего не сохраняется, поэтому ничего не нужно освобождать, но попытайтесь и опубликуйте ответ, если я его найду!

Это работало вчера, а теперь это не ... Я ничего не изменил!

Редактировать: Оказывается, в то время как reloadData вызывает сбой, авария не возникает без моего пользовательского tableViewCell ... хммм, что-то об удалении знака +, но это не происходит с удалением!

Актуальная ошибка: [CustomTableViewCell _accessibilityUpdateRemoveControl]: сообщение отправлено на освобожденный экземпляр.

Что смешно, кнопка удаления работает. По сути, он удаляет элемент из массива, добавляет его другому, в основном помещая его «в другую таблицу». Никаких сбоев, отлично работает.

Если я удаляю строку, которая перезагружает данные в таблице, после добавления кнопки вставки она также работает. Например: не сразу загружать данные, закрывать окно, возвращаться, все отображается нормально. Точная строка, которая до сих пор падает, находится в

[theTable reloadData], но эта строка для другой таблицы (как я обновляю оба) не сбой вообще. Фактически, благодаря этому, я собираюсь просматривать заголовки для функций UITableView и просматривать другие ответы с этой конкретной строкой. Я просто не видел этого нигде, после поиска этого странного вызова функции.

Я обеспечиваю, чтобы моя ячейка находилась в памяти, и даже прекратила заниматься тем, что она работает. Я в тупике с этим, надеюсь, будет иметь решение в час или меньше.

Благодаря

+0

Кажется, что это связано с моей пользовательской ячейкой таблицы, хотя и подклассифицировано, не реализуя что-то ... поскольку этот crasher не происходит с обычными, хм, разместит, когда я нахожу –

+0

не может ответить себе, так и в комментариях: Просто нужно было задать этот вопрос: [possibleTable registerNib: [UINib nibWithNibName: @ "NameOfTableViewCell" пачка: ноль] forCellReuseIdentifier: @ "Идентификатор"] ; Веб-поиск для повторного использования пользовательской таблицы xib (или аналогичного) намекает на то, что я должен зарегистрировать Nibs, и поскольку это проблемы с памятью, я понял, что это, вероятно, «способ сохранения объектов таблицы Apple» ... затем для примеров и где, cred относится к Robotic Cat http://stackoverflow.com/questions/8484708/is-it-faster-to-create-uitableviewcell-programmatically-or-load-one-from-a-nib –

ответ

0

Я прошел через код Apple, строка за строкой, прочитал название каждой функции и заметил это: editControlWasClicked: (ID) щелкнул

вызывается непосредственно перед грохотом. Я сочетал это с сообщением об ошибке и тем фактом, что я вызываю [table2 reloadData] до того, как это вызвано, и скомпоновал эти фрагменты вместе.

Ячейка стирается (так что она перемещается к другой таблице), но почему-то называет ее системным вызовом «editControlWasClicked» после перезагрузки таблицы ... так как она находится в основном потоке, я предполагаю, что материал таблицы - это multi -подумал ... как иначе он будет приводить их в порядок, но делать это после перезагрузки ???

Чтобы проверить это, я использовал функцию «afterDelay», а низкий и вот, он сработал.

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

Итак, возможные решения: 1) использовать метод afterDelay селекторов. 2) Напишите пользовательское IBAction (потому что это xib) или иным образом используйте пользовательские изображения и функции, чтобы гарантировать, что он не будет вызван.

Примечание. 2 включает в себя запись дополнительного делегата, чтобы сообщения из ячейки могли доходить до контроллера вида.

Базовое решение: используйте iOS 5, используйте очередность, в противном случае выполните одно из вышеуказанных решений или выясните резьбу/крючки и найдите способ сделать это без задержки. (Я бы предпочел, чтобы я мог его найти)

 Смежные вопросы

  • Нет связанных вопросов^_^