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