[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PATCH: Find more ObjC methods

From: Devang Patel
Subject: Re: PATCH: Find more ObjC methods
Date: Fri, 3 Oct 2003 12:53:03 -0700

On Oct 3, 2003, at 12:14 PM, Ziemowit Laski wrote:

On Friday, Oct 3, 2003, at 12:00 US/Pacific, Devang Patel wrote:

On Oct 3, 2003, at 2:57 AM, David Ayers wrote:

[self somePrivatMethod]; /* <- should not see the prototype and warn! */

Does this mean that using private methods, that are not included
in @interface, is not a good idea? I think, compiler should figure
out that it is part @implementation and not warn about it.

Well, Objective-C plays it fast and loose here (as in many other places). :-) On the one hand, you're definitely encouraged to provide an @interface for your class in a header that other translation units can pull in. But on the other, you do not _need_ to provide an @interface at all! It may not be very polite, but if the @implementation contains the required ivars,
the compiler knows what to do.

Yes, I understand this well.

Furthermore, methods in Objective-C are not 'private' (or 'protected') in the C++ sense; all methods _are_ visible to the runtime. So, in the example above, the program definitely _will_ call 'somePrivateMethod'. Also, since we happened to see the @implementation in this
case, we can actually determine which 'somePrivateMethod' this will be.

That's why compiler should not issue warning in this case. If it issues warning than as an end user I take it it as "I'm doing something that is not OK/preferred and compiler is warning me about it". Which not the case here so compiler should
not issue warning (and I guess you agree with me).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]