• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: When to call super
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: When to call super


  • Subject: Re: When to call super
  • From: Roland King <email@hidden>
  • Date: Tue, 12 Aug 2014 21:21:31 +0800

Is there a sure-fire way, no. It’s usually fairly clear however. Normally you call super if you override a method unless it tells you not to in the documentation or you are clearly trying to make something NOT do what the superclass did. I suppose my handwaving rule is if a method ‘does’ something and you override it to do more stuff as well, you probably still want the old stuff one, so call super (viewDidAppear: .. etc). If you are overriding a method which calculates and returns something, then unless you want the result super gives you as a starting point, since you are returning a calculation, you don’t want to call super (eg hitTest:withEvent:)

The docs for UIView’s drawRect: for instance tell you when to and when not to so some are documented to help you

For those cases you list below, two of them are documented to throw exceptions, so you wouldn’t call them and the last one is a delegate method, so it doesn’t have a super. I know they were just examples you picked at random, but you can often come up with the right answer just by asking, what does the superclass method do, and do I still want it to do that.

> On 12 Aug 2014, at 9:02 pm, McLaughlin, Michael P. <email@hidden> wrote:
>
> Is there a sure-fire way to know when it is necessary to call super in an override?
>
> Sample code shows that calling super is necessary for methods such as
>
> -(id)init
>
>
> - (void)windowControllerDidLoadNib
>
>
> but not for
>
>
> (NSData *)dataOfType
>
>
> (BOOL)readFromData
>
>
> How can you know for sure?
>
>
> This question occurred to me recently when I realized that my implementation of
>
>
> (NSApplicationTerminateReply)applicationShouldTerminate
>
>
> did not call super and I was wondering whether I should.  Currently, I just clean up and return NSTerminateNow.
>
>
> Thanks for any reply.
>
>
>
> —
> Michael P. McLaughlin
>
> _______________________________________________
>


_______________________________________________

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


References: 
 >When to call super (From: "McLaughlin, Michael P." <email@hidden>)

  • Prev by Date: When to call super
  • Next by Date: Re: Mod (%) function in C/Objective-C?
  • Previous by thread: When to call super
  • Next by thread: Re: When to call super
  • Index(es):
    • Date
    • Thread