La reference no propietaria causa fugas, no es débil

Estoy experimentando algún tipo de problema de gestión de la memory. Tengo una subclass de UIViewController y configuré su vista manualmente para tener una reference de nuevo al viewController y para evitar el ciclo de reference que uso weak/unowned . Ahora el problema es que, si uso unowned tengo una pérdida de memory pero si uso weak no tengo uno. No puedo entender por qué sucede esto?

Actualización: parece que es un error.

salida de console:

 removing vc view Controller deinitialized custom view deinitialized 

Estoy usando xcode 8.3.1

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = ViewController(nibName: nil, bundle: nil) window?.makeKeyAndVisible() DispatchQueue.main.asyncAfter(deadline: .now() + 5) { print("removing vc") self.window?.rootViewController = nil } return true } class ViewController: UIViewController { override func loadView() { view = CustomView(frame: .zero, vc: self) view.backgroundColor = .networking } deinit { print("view Controller deinitialized") } } class CustomView:UIView{ init(frame: CGRect , vc:ViewController) { self.vc = vc super.init(frame: frame) } requinetworking init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } // weak var vc : ViewController! // no leak unowned var vc : ViewController // leak deinit { print("custom view deinitialized") } } 

Xcode 8.2 Notas de la versión:

El depurador de memory para macOS y el simulador de iOS corrigen los informes de memory leaks falsas para las classs Swift que contienen campos de tipo enum o classs que henetworkingan de ciertas classs de framework de Objective-C. (27932061)