Я столкнулся с настоящим тяжелым здесь.Ссылка не возвращает ноль, даже если освобождена
Мой класс создан самостоятельно (a + (void) start;
-method), который отправляется делегату. Мне нужно отправить делегату несколько сообщений через делегат-селекторов. Чтобы проверить, был ли делегирован делегат, я пробовал if (delegate == nil/NULL)
, но даже если он действительно выпущен, он все еще говорит, что это не так.
Как я могу это исправить? (Делегат присваивается id
)
Это как мое приложение застроена:
AppDelegate
> NavController
>> TableView
>>> Post
>>>> GetData
GetData является самостоятельно создал класс. Сообщение является делегатом GetData и выпущено TableView/NavController. После отпускания Post также устанавливается значение nil.
Другими словами, GetData не выпускает его делегата!
Что делать, если класс даже не освобождает делегата, другой класс превосходит его (и также устанавливает его в nil ...)? – Emil
Это прекрасно, только до тех пор, пока ссылка делегата класса будет установлена на ноль до того, как сам делегат будет выпущен. –
В вашем случае, когда 'Post', похоже, принадлежит' GetData', просто добавьте 'delegate = nil' в метод' -dealloc'. –