Hello community, 

        I just encountered a pretty weird behavior when I subclass  
`UINavigationController` without overriding any initializers.

Simple Code:

import UIKit

class MyViewController: UINavigationController {
  
  let value: Int = {
    print("member init")
    return 3
  }()
}

let _ = MyViewController(rootViewController: UIViewController())

output is:

member init
member init

In fact any member variables declared in this subclass is initialized twice but 
deinitialized only once.
This phenomenon only appears when using `init(rootViewController:)`. 

CMIW, It looks like Swift somehow treat this initializer as a designated 
initializer, rather than a convenience one. 

Any Ideas?






_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to