1

を使用してコントローラー階層からviewControllerを削除していますremoveFromParentViewControllerdeinit、ビューコントローラーが呼び出されません。強い参照を保持しているものを確認するにはどうすればよいですか?

参照グラフがメモリに存在することを確認する方法はありますか?

これは私の 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/ソース ビューを追加/削除する必要がありますか?

Swiftでにアクセスする方法はrefCountありますか?viewController


でコードを解析してみましたInstruments。ビューコントローラーへの強い参照を保持しているものを見つけますが、理解できませんでした。何か助けはありますか?

ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1

3

Instruments でコードのプロファイルを使用できます。Xcode で、[製品] > [プロファイル] を選択します。Instrumentsがロードされたら、テンプレートとしてAllocationsを選択します。

これにより、どのオブジェクトがどの強い参照を設定しているかを追跡できます。

于 2015-05-28T11:43:10.490 に答える