forked from OSchip/llvm-project
More wordsmithing on objc_requires_super documentation.
llvm-svn: 193288
This commit is contained in:
parent
ffc9a71866
commit
c95fe7ca31
|
@ -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
|
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
|
parent class but expect that the overriding method also calls the overridden
|
||||||
the parent class. In such cases it is useful to be able to mark a method as
|
method in the parent class. For these cases, we provide an attribute to
|
||||||
requiring this chaining behavior. For these cases, we provide an attribute to
|
designate that a method requires a "call to ``super``" in the overriding
|
||||||
designate that a method requires a "call to ``super``" in the overriden method
|
method in the subclass.
|
||||||
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
|
.. code-block:: objc
|
||||||
|
|
||||||
- (void)foo __attribute__((objc_requires_super));
|
- (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
|
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
|
convenience macro ``NS_REQUIRES_SUPER`` that provides syntactic sugar for this
|
||||||
|
|
Loading…
Reference in New Issue