Общее настроение в наше время - то, что они вызывают неуместную связь между производными классами и их основаниями.
у Них нет конкретного преимущества перед защищенными методами/свойствами (когда-то давно, у них могло бы быть небольшое преимущество производительности), и они также использовались больше в эру, когда очень глубокое наследование было в моде, который это не в данный момент.
На самом деле это ошибка в документации. addTimeInterval:
устарел в Mac OS X 10.6, но не в iPhone OS 3.1.2.
Вы можете посмотреть NSDate.h в MacOS и iPhoneOS, и вы увидите разницу.
NSDate.h в iPhone OS
- (id)addTimeInterval:(NSTimeInterval)seconds;
и NSDate.h в Mac OS 10.6
- (id)addTimeInterval:(NSTimeInterval)seconds DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER;
- (id)dateByAddingTimeInterval:(NSTimeInterval)ti AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
Для меня это похоже на опечатку, поскольку я вижу в своей системе то же, что и вы. Возможно, они намеревались отказаться от описанного метода, но отказались от него в последнюю минуту, так как неверный текст все еще был на месте.