Что держит сильную ссылку на мой viewController?
Я удаляю viewController из иерархии контроллеров с removeFromParentViewController
, но deinit
контроллера зрения не вызывают. Как я могу проверить, что на это указывает?
Есть ли способ увидеть референсный граф в памяти?
Вот как выглядит мой метод swap`:
public class func swap(fromViewController: UIViewController!, toViewController: UIViewController!, containerViewController: UIViewController!) {
fromViewController.willMoveToParentViewController(nil)
containerViewController.addChildViewController(toViewController)
toViewController.view.frame = containerViewController.view.bounds
containerViewController.transitionFromViewController(fromViewController, toViewController: toViewController, duration: 0.2, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: {}, completion: {finished in
fromViewController.removeFromParentViewController()
toViewController.didMoveToParentViewController(containerViewController)
})
}
В transitionFromViewController
completion
я должен добавить / удалить назначения / исходные виды?
Любой способ доступа refCount
из viewController
в Свифте?
Я пытался проанализировать код с Instruments
, Выясните, что является сильной ссылкой на просмотр контроллера, но не смог понять. Любая помощь?
1 ответ
Вы можете использовать профиль кода с инструментами. В XCode выберите Продукт> Профиль. Когда инструменты загрузятся, выберите Распределения в качестве шаблона.
Это позволит вам отслеживать, какие объекты устанавливают какие сильные ссылки.