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