iPhone Bug App bug Вопрос и вызов - PullRequest
0 голосов
/ 22 февраля 2009

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

Вот начальное описание ошибки: Выстрел в темноте - Ошибка приложения

Однако я нашел способ последовательно воспроизвести ошибку (только на устройстве, которое отсутствует в симуляторе)

Сначала вы создаете новый пул и сохраняете его. Затем добавьте 20 пустых часов в один день. Сохраните его, и именно здесь начинаются проблемы. (когда вы возвращаетесь к основному подробному представлению, табличное представление вышло из режима редактирования с указанием сделать это). Теперь, если вы вернетесь к тому дню, чтобы увидеть только что добавленные вами записи времени, они все еще там.

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

Добавь один раз, и все отлично сохранится. Добавьте двадцать, и это не спасет. WTF !!

Список главного меню Бассейны:

https://farm4.static.flickr.com/3503/3301053744_0325d5bc2c.jpg?v=0

Детальный просмотр:

https://farm4.static.flickr.com/3546/3300222271_223d2c74e9.jpg?v=0

Редактировать вид:

https://farm4.static.flickr.com/3625/3300222887_b02c3e2052.jpg?v=0

Время Редактировать Просмотр:

https://farm4.static.flickr.com/3547/3301056092_8d3ab78225.jpg?v=0

Добавить время:

https://farm4.static.flickr.com/3635/3300224157_14c30cf58f.jpg?v=0

Буду признателен за любые догадки. Но помимо этого вопроса я предлагаю вознаграждение в 25 фунтов стерлингов (извините, я плохой ученик) тому, кто достаточно хорош, чтобы сначала исправить эту ошибку!

если вас интересует, мой адрес электронной почты: danmorgz [at] gmail.com

Спасибо

Dan

Ответы [ 3 ]

1 голос
/ 24 февраля 2009

Если вы еще этого не сделали, я бы порекомендовал включить поддержку NSZombie и посмотреть, используете ли вы какие-либо объекты после их освобождения. Насколько я знаю, это можно включить в симуляторе и на устройстве.

0 голосов
/ 24 февраля 2009

Спасибо за все ваши ответы. Теперь это исправлено.

Для тех, кто заинтересован, я забыл добавить идентификатор ячейки в XIB моего подкласса ячейки.

cellForRow: метод создавал новую ячейку каждый раз. Память заполнилась очень быстро. Затем мне показалось, что мое приложение автоматически пытается избавиться от лишнего, вынуждая другой tableView из режима редактирования и не управляя моими экземплярами должным образом.

Опять это проблема с памятью. Разве это не всегда так!?!

Подсказка была ошибка «один из 101» в консоли, указывающая, что мое приложение использует слишком много памяти. Ох и медленная прокрутка tableView.

0 голосов
/ 23 февраля 2009

Скорее всего, вам не удалось удержать какой-то объект в пути. Когда объект освобождается, а затем память повторно используется для чего-то другого, вы получаете все виды плохого поведения, включая сбои или таинственное «исчезновение» других объектов.

Одна вещь, которую вы можете попробовать, это поместить точки останова в метод -dealloc ваших пользовательских классов. Тогда вы можете увидеть, откуда они освобождаются. Скорее всего, это закончится тем, что AutoreleasePool истощится, что вам мало что скажет.

В качестве альтернативы рассмотрите использование некоторых инструментов отладки памяти , встроенных в Какао .

Этот документ предназначен для Mac OS X, но я думаю, что почти все это будет работать в симуляторе iPhone, по крайней мере. Я знаю, что ваша ошибка «не происходит» в симуляторе, но на самом деле это означает только то, что симптомы разные, и вы их не замечаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...