init?(coder: NSCoder) or init?(coder: (NSCoder?))

In this code, I use in some places

    required init?(coder: (NSCoder?)) { 
        // Init some properties
        super.init(coder: coder!)   
    }

And in other places

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        // Init some properties
    }

Both seem to work. Is there a preferred one ? In which cases ? Or should I always use the second one ?

And can super be called at anytime ?

init?(coder: NSCoder) or init?(coder: (NSCoder?))
 
 
Q