GNOME Bugzilla – Bug 656005
Objective-C Class Extensions should not be considered private.
Last modified: 2011-08-14 14:05:15 UTC
Objective-C class extensions should be considered "private" and only be included in documentation when EXTRACT_PRIVATE is turned on. When a class extension like the one below is declared in a .m implementation file in Objective-C it is effectively private. Unlike languages like Java and C++ there is no way of marking members of a class in Objective-C as private. The @private keyword only applies to data members. @interface MyClass () @property (nonatomic, assign) id<SomeDelegate> delegate; @property (nonatomic, retain) NSMutableDictionary *actions; - (void)someMethod; @end Although no methods in Objective-C are really private (if you know the selector name you can call it) it would be nice if the methods didn't show up in the public interface documentation. I've tried adding /*! \private */ to methods and properties in class Extensions but that doesn't seem to be having any effect even with EXTRACT_PRIVATE not set.
It seems the only effective way to remove "private" and internal methods in Objective-C code from Doxygen docs is to turn on HIDE_UNDOC_MEMBERS and document everything that should be public.
Confirmed. Should be fixed in the next release. Make sure EXTRACT_LOCAL_METHODS is set to YES, otherwise the methods only defined in a .m file are not extracted.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.7.5. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant.