When designing a class hierarchy, sometimes the subclass has added a new initWithSomeNewParam
method, and it would be desirable to disable calls to the old
You can explicitly mark your init
as being unavailable in your header file:
- (id) init __unavailable;
or:
- (id) init __attribute__((unavailable));
With the later syntax, you can even give a reason:
- (id) init __attribute__((unavailable("Must use initWithFoo: instead.")));
The compiler then issues an error (not a warning) if someone tries to call it.