Why is this the intentional behavior? Seems a bit strange that init() is a 
special exception to the rule.

16. May 2016 19:29 by [email protected]:


>
>
>> On May 16, 2016, at 7:09 AM, tuuranton--- via swift-users <>> 
>> [email protected]>> > wrote:
>>           >> Why does the following code compile?>> Why does Bar's init(x: 
>> Int) automatically call Foo's init()?>> Why don't I have to manually call 
>> super.init() myself?
>
> This is intentional behavior.  It kicks in when your super class has a 
> single designated initializer with a zero-argument init.  This is why you 
> don’t have to call super.init() when deriving from NSObject.
> -Chris
>
>>
>> What passage of>> 
>> https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-ID203>>
>>  
>> tells me that this should be the case?
>> -------------------->> class Foo {>>     init() {>>         print("foo 
>> init")>>     }>> }>> class Bar: Foo {>>     init(x: Int) {>>         
>> print("bar init")>>     }>> }>> let b = Bar(x: 0)>> //prints:>> //    bar 
>> init>> //    foo init>>   >> 
>> _______________________________________________
>> swift-users mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-users
>>
>
> 
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to