Re: Private Methods
Re: Private Methods
- Subject: Re: Private Methods
- From: email@hidden
- Date: Wed, 19 Aug 2015 00:29:48 +0900
Hence the long traditional advice to do one or both of two things.
Remember Objective-C has no namespaces.
Prefix everything with your own identifier.
Don't use short simple obvious names.
There are many reasons Cocoa tends to be verbose.
This is one.
An added bonus of prefixes is that they can simplify code completion candidate lists!
RC_
_RC_
Three letters gets you farther away from collisions.
What can be worse is when the runtime picks one and you don't know which one.
And it only occasionally gets the one you don't want.
Sent from my iPhone
> On Aug 18, 2015, at 11:58 PM, Richard Charles <email@hidden> wrote:
>
> Apple documentation states that the "Names of most private methods in the Cocoa frameworks have an underscore prefix (for example, _fooData ) to mark them as private.”
>
> I just ran into a case where one of my method names in a subclass replaced a private Cocoa framework method of the same name causing my application to crash in the next version of OS X. The private Cocoa framework method name did not have an underscore prefix. So the documentation is correct, “most” but not all private methods in the frameworks have an underscore prefix.
>
> There is no way that I would have known about the private Cocoa framework method except examining a class-dump.
>
> Apple documentation also states that "If you are subclassing a large Cocoa framework class (such as NSView or UIView) and you want to be absolutely sure that your private methods have names different from those in the superclass, you can add your own prefix to your private methods. The prefix should be as unique as possible, perhaps one based on your company or project and of the form "XX_". So if your project is called Byte Flogger, the prefix might be BF_addObject:"
>
> I have never bothered doing this because for one reason BF_addObject looks so ugly as a method name.
>
> Does anyone prefix their private method names like Apple recommends when subclassing a large Cocoa framework class?
>
> Also why does Apple say "If you are subclassing a large Cocoa framework class”. What if I am subclassing a small Cocoa framework class. What difference would it make?
>
> --Richard Charles
>
>
> _______________________________________________
>
> 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
_______________________________________________
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