[swift-users] Initializers

Jordan Rose jordan_rose at apple.com
Fri Jan 27 12:58:21 CST 2017


Convenience initializers are inherited when you override all of your parent class's designated initializers. If you change the signature of the designated initializer, then the convenience initializers will no longer do the right thing.

However, we could allow this case and just consider it shadowing the original initializer rather than overriding. In that case, though, we'd probably want something like @nonoverriding to make it clear that it was intentional.

Jordan


> On Jan 27, 2017, at 10:39, tuuranton--- via swift-users <swift-users at swift.org> wrote:
> 
> Yes, but why?
> 
> What's the rationale for this?
> 
> What would be so bad about allowing overriding a non-failable initializer with a failable initializer?
> 
> 27. Jan 2017 18:59 by saagar at saagarjha.com <mailto:saagar at saagarjha.com>:
> 
> You can’t override a designated initializer with one that is failable. The second one is defining a new initializer that is failable, instead of overriding the one from its superclass.
> 
> Saagar Jha
> 
> On Jan 27, 2017, at 8:45 AM, tuuranton--- via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
> 
> See the comments. Why is one allowed but the other one isn't and what's the rationale for this?
> 
> 
> class Vehicle {
>     let name: String
>     init(name: String) {
>         self.name = name
>     }
> }
> 
> 
> class Car: Vehicle {
>     //Why is this not allowed?
>     override init?(name: String) {
>         super.init(name: name)
>     }
>     
>     //But this is allowed?
>     init?(name: String, ignore: String) {
>         super.init(name: name)
>     }
> }
> 
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org <mailto:swift-users at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users <https://lists.swift.org/mailman/listinfo/swift-users>
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170127/b57ab87f/attachment.html>


More information about the swift-users mailing list