Я не уверен, что делаю что-то не так:
Я регистрируюсь для уведомлений рабочей области, используя этот фрагмент в awakeFromNib
[[[NSWorkspace sharedWorkspace] notificationCenter]
addObserver:self
selector:@selector(noteReceived:)
name:nil
object:nil];
селектор noteReceived:
принимает один NSNotification *
в качестве параметра. И у меня есть точка останова на этом.
При компиляции с отключенным GC он работает нормально, и я получаю все уведомления.
Когда соблюдается GC, я получаю только одно уведомление при запуске моего приложения, и все.
Я что-то упустил?
Решение:
Я что-то упустил. Это был просто быстрый тестовый проект, поэтому между контроллерами не было обычной связи, которая была бы в реальном приложении. Недостаточно создать экземпляр объекта в файле nib / xib и ожидать, что он не будет собран.
Однажды я сделал свой контроллер делегатом владельца файла (даже если он не реализует какие-либо методы делегирования), которого было достаточно для поддержания объекта в живых.