Что держит сильную ссылку на мой 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)
    })
}

В transitionFromViewControllercompletion я должен добавить / удалить назначения / исходные виды?

Любой способ доступа refCount из viewController в Свифте?


Я пытался проанализировать код с Instruments, Выясните, что является сильной ссылкой на просмотр контроллера, но не смог понять. Любая помощь?

1 ответ

Решение

Вы можете использовать профиль кода с инструментами. В XCode выберите Продукт> Профиль. Когда инструменты загрузятся, выберите Распределения в качестве шаблона.

Это позволит вам отслеживать, какие объекты устанавливают какие сильные ссылки.

Другие вопросы по тегам