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