A protocol - это средство для определения списка обязательных и / или необязательных методов, которые реализует класс.Если класс принимает протокол, он должен реализовать все необходимые методы в протоколах, которые он принимает.Какао использует протоколы для поддержки межпроцессного взаимодействия через сообщения Objective-C.Кроме того, поскольку Objective-C не поддерживает множественное наследование, вы можете добиться аналогичной функциональности с протоколами, поскольку класс может использовать более одного протокола.
Хорошим примером протокола является NSCoding, для которого требуется два обязательных протокола.методы, которые класс должен реализовать.Этот протокол используется для обеспечения возможности кодирования и декодирования классов, то есть архивирования объектов путем записи в постоянное хранилище.
@protocol NSCoding
-(void)encodeWithCoder:(NSCoder *)aCoder;
-(id)initWithCoder:(NSCoder *)aDecoder;
@end
Чтобы принять протокол, заключите его имя в <>, как показано ниже
@interface SomeClass : NSObject <NSCoding>
{
some variables
}
Как определить протокол?
Мы можем создать оба обязательных дополнительных метода в протоколе.Далее следует определение протокола с именем «Hello»:
@protocol Hello
- (BOOL)send:(id)data;
- (id)received;
@optional
- (int)progress;
@end
Чтобы использовать протокол, как в примере выше, объявите протокол в интерфейсе и напишите необходимые методы в реализации класса:
// Интерфейс @interface AnotherClass: NSObject
{
some declaration
}
// Реализация @implementation AnotherClass
- (BOOL)send:(id)data
{
some declaration
}
- (id)received
{
some code
}
// Необязательный метод
- (int)progress
{
some code
}
@end
Я надеюсь, что это поможет вам выучить протокол.