Мой родительский объект создает дочерний объект для выполнения какого-либо действия async. Это связано с некоторым взаимодействием с пользователем, и это одна из причин, по которым я не использовал NSOperation
. Только дочерний объект знает, когда он завершил свою задачу, то как он сообщает моему родительскому объекту, что я сделан, пожалуйста, освободите меня, чтобы избежать утечек памяти?В ARC как дочерний объект сообщает родительскому объекту, что я сделал, отпустите меня (чтобы избежать утечек памяти)
В настоящее время я придумал это, родительский объект имеет метод обратного вызова, называемый releaseChild
, который равен child = nil
; Когда дочерний объект заканчивает свою задачу, он вызывает родительский releaseChild
, чтобы установить себя на нуль. Фактически, я завершаю вызов в dispatch_after
, но идея такая же, дочерний объект вызывает ее родительский элемент, чтобы установить себя на нуль.
Мне было интересно, есть ли лучший способ?
----- обновление -----
Я знаю, что «нормальный» способ записать своего ребенка, чтобы создать UIViewController
объект, нажмите на него, чтобы UINavigationController
. Когда он будет закончен, пользователь может выскочить, ARC
затем выпустит его. Таким образом, мне не нужно беспокоиться о утечке памяти (обычно). Но я думаю, что вопрос о выпуске дочернего объекта, когда он выполняется, и только он знает, когда это делается, имеет пограничное приложение, чем запись объекта UIViewController
.
Могу я узнать, какой тип детского класса? – CodeChanger
Просто «нормальный» какао-объект с UI и сетевым материалом – Qiulang
, поэтому для этого вам нужно переопределить метод 'dealloc()' в 'child' и вызвать этот метод с« дочерним »объектом из« parent »и сделать что-нибудь из вас хотите, чтобы там «выпустить». – CodeChanger