Это похоже на доступ к объекту зомби, только на его лице.Не уверен, почему однократное дублирование цели может вызвать это, но вы пробовали профилировать свое приложение с помощью инструмента Зомби в симуляторе?
РЕДАКТИРОВАТЬ:
Да.Хорошо, теперь вы знаете, что происходит.Опять же, мне трудно представить, как простое дублирование цели может привести к этому.Объект, который должен быть сохранен, не сохраняется.Причин может быть несколько, но одной из возможных причин является @property, который должен быть объявлен retain
или copy
, но объявлен assign
.Инструмент Зомби может помочь вам в дальнейшем:
Рядом с этим сообщением об ошибке должна быть маленькая стрелка в круге.Если вы щелкнете по нему, откроется подробный вид, который показывает все вещи, которые удерживали и выпускали этот объект в течение его жизни.Это может быть полезно, а может и нет.Если проблема заключается в том, что что-то «перевыпускает» объект, вы можете быть в состоянии определить это из списка, но, скорее всего, проблема заключается в том, что что-то, что должно его сохранить, не будет и не будет отображаться в списке..
Что может быть полезно в этом списке, так это узнать, кто создал объект, потому что обычно это будет логический «владелец» объекта (или он передаст его логическому владельцу).Я хотел бы пройтись по своему проекту и подумать о предполагаемом владении данным объектом.Кто должен владеть этим объектом?Почему они не сохраняют его?
Если вы все еще быстро справляетесь с управлением памятью Какао, я рекомендую прочитать руководство Apple: Расширенное руководство по программированию управления памятью Исправлено обращение к объектам-зомби.обряд для разработчиков Objective-C.Придерживайтесь платформы, и у вас, несомненно, будет много возможностей отточить свою технику.
Вы также можете рассмотреть возможность использования автоматического подсчета ссылок (ARC).Это сделано для того, чтобы вам не приходилось думать об этом, и на самом деле работает чертовски хорошо.
РЕДАКТИРОВАНИЕ 2:
Только что пришло мне в голову: возможно ли, что вы использовали ARC в исходной цели, и когда вы дублировали цель, эта настройка каким-то образом отключилась?Это, безусловно, объясняет это.