I don't think the question mark in public init?(coder aDecoder: NSCoder)
is about optionals. Also, when I override it I find I don't need to write the question mark at all.
So what does it mean exactly ?
--- Update ---
The comment below helped me figure that out. It is called a "failable initializer". Another example that can make the concept easier to understand is UIFont's convenience init because the UIFont may not exist.
public /*not inherited*/ init?(name fontName: String, size fontSize: CGFloat)
public init()
but for anyinit()
– Dentistry