More wordsmithing on objc_requires_super documentation.

llvm-svn: 193288
This commit is contained in:
Ted Kremenek 2013-10-23 23:30:08 +00:00
parent ffc9a71866
commit c95fe7ca31
1 changed files with 11 additions and 7 deletions

View File

@ -1181,19 +1181,23 @@ Objective-C requiring a call to ``super`` in an override
--------------------------------------------------------
Some Objective-C classes allow a subclass to override a particular method in a
parent class but expect that the override chains to calling the same method in
the parent class. In such cases it is useful to be able to mark a method as
requiring this chaining behavior. For these cases, we provide an attribute to
designate that a method requires a "call to ``super``" in the overriden method
in the subclass.
parent class but expect that the overriding method also calls the overridden
method in the parent class. For these cases, we provide an attribute to
designate that a method requires a "call to ``super``" in the overriding
method in the subclass.
**Usage**: ``__attribute__((objc_requires_super))``. This attribute can only be placed at the end of a method declaration:
**Usage**: ``__attribute__((objc_requires_super))``. This attribute can only
be placed at the end of a method declaration:
.. code-block:: objc
- (void)foo __attribute__((objc_requires_super));
This attribute can only be applied the method declarations within a class, and not a protocol.
This attribute can only be applied the method declarations within a class, and
not a protocol. Currently this attribute does not enforce any placement of
where the call occurs in the overriding method (such as in the case of
``-dealloc`` where the call must appear at the end). It checks only that it
exists.
Note that on both OS X and iOS that the Foundation framework provides a
convenience macro ``NS_REQUIRES_SUPER`` that provides syntactic sugar for this