Re: NSWindowController and designated initializer rules
Re: NSWindowController and designated initializer rules
- Subject: Re: NSWindowController and designated initializer rules
- From: Graham Cox <email@hidden>
- Date: Tue, 24 Jun 2014 10:30:26 +1000
On 24 Jun 2014, at 3:38 am, Sean McBride <email@hidden> wrote:
> The Obj-C designated initializer rules say that if a subclass creates a new designated initializer that its implementation must call (one of) the superclass' designated initializer.
>
> The docs for NSWindowController say initWithWindow: is the (only) designated initializer.
>
> Countless examples of NSWindowController subclassing, like Apple's Sketch sample code:
>
> <https://developer.apple.com/library/mac/samplecode/Sketch/Listings/SKTWindowController_m.html>
>
> do this:
>
> - (id)init {
> // Do the regular Cocoa thing, specifying a particular nib.
> self = [super initWithWindowNibName:@"DrawWindow"];
> }
>
> So there seems to be a contradiction here... Are the docs just omitting that initWithWindowNibName: is in fact a secondary designated initializer?
I interpret that to mean it must call a designated initializer *eventually*, not necessarily directly. Since all -initXXX methods of the superclass must call the superclass's designated initializer, your subclass's D.I. can call any of the superclass's -initXXX methods.
--Graham
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden