Чтобы добавить к ответу Питера Хоси и после прочтения некоторых подробностей в другом вопросе, который вы разместили об этой проблеме, рассмотрим некоторые другие факторы:
- Класс «Владелец файла», выбранный в кончике, полностью игнорируется во время выполнения. Он существует только для удобства разработки - для проверки доступных действий и торговых точек.
- Есть ли вероятность, что вы найдете ноль указателей в
-init
? Розетки подключены после -init
и до -awakeFromNib
. Они никогда не будут связаны в -init
.
Я пытаюсь понять последовательность инициализации (из вашего другого поста). Похоже, вы создаете новый экземпляр вашего подкласса CTTabContents
и передаете его в метод CTBrowserWindowController
вашего подкласса -addTabContents:
. Затем CTBrowserWindowController
загружает ваши объекты из пера.
Или, может быть, это неправильно. Возможно, вы создаете экземпляр вашего подкласса CTTabContentsController
. Затем этот объект загружается TabContents.xib
.
Важно отследить , куда загружается перо и , какой объект предоставляется в качестве владельца файла в это время .
Еще один вопрос: используете ли вы ручную разблокировку / сохранение, автоматический подсчет ссылок или сборку мусора?
Наконец, я повторяю важность распечатки указателя self
в ваших методах инициализации. В дополнение к -init
и -awakeFromNib
, попробуйте другие методы инициализации, такие как CTTabContents
подкласс '-initWithFrame:
. Когда вы обнаружите прерывистые нулевые указатели в оставшейся части отладки, распечатайте также указатели self
. Вы, вероятно, также увидите различные значения self
.