Может ли категория реализовать протокол в Цели C?

У меня есть категория на NSDate, и было бы удобно, если бы он мог реализовать протокол, который я ранее создал. Это возможно? какой правильный синтаксис для этого?

1 ответ

Решение

Да, это возможно Синтаксис:

@interface NSDate (CategoryName) <ProtocolName>
@end

@implementation NSDate (CategoryName)
@end

Вот документация Apple по этой теме.

Это также возможно сделать с помощью расширения класса. Мне очень нравится это частное соблюдение протоколов делегатов. Это скрывает детали реализации того, что некоторые делегаты какого-то класса находятся в открытом интерфейсе, и удаляет зависимость из заголовка.

Другие вопросы по тегам