У меня есть категория на NSDate, и было бы удобно, если бы она могла реализовать ранее созданный мной протокол. Это возможно? какой для этого правильный синтаксис?
Ответы:
Да, это возможно. Синтаксис:
@interface NSDate (CategoryName) <ProtocolName>
@end
@implementation NSDate (CategoryName)
@end
Вот документация Apple по этой теме.
Это также можно сделать с помощью расширения класса. Мне очень нравится, что это конфиденциально соответствует протоколам делегирования. Это скрывает детали реализации того, что является делегатом некоторого класса из общедоступного интерфейса, и удаляет зависимость из заголовка.