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