Синтаксис для нескольких протоколов
Что такое синтаксис Objective-C для нескольких протоколов?
Ответы
Ответ 1
Не могли бы вы рассказать о своем вопросе? В противном случае это правильный способ объявить класс, соответствующий нескольким протоколам. Вы указываете протоколы, которые соответствует классу после объявления суперкласса в заголовочном файле классов.
@interface MyClass : MySuperClass <Delegate1, Delegate2, Delegate3> {
//instance variables
}
//properties
//methods
Ответ 2
Вы можете выполнить несколько протоколов двумя способами:
Метод 1
@protocol p1 <NSObject>
-(void)M1
-(void)M2
@end
@protocol p2 <NSObject>
-(void)M3
-(void)M4
@end
@interface MyViewController () <p1,p2>
Метод 2
@protocol p1 <NSObject>
-(void)M1
-(void)M2
@end
@protocol p2 <NSObject,p1>
-(void)M3
-(void)M4
@end
@interface MyViewController () <p1>
Ответ 3
Для объекта, имеющего несколько делегатов (вместо того, чтобы быть делегатом для нескольких объектов или классов):
-
Делегирование объекта должно
иметь NSArray экземпляра делегата
переменные.
-
Метод setDelegate setter
затем необходимо добавить объект-делегат
к этому массиву, а не просто
присваивая его одному экземпляру
переменная.
-
Код отправки для делегирования будет иметь
перебирать делегата
NSArray вместо проверки на
только одна переменная экземпляра делегата
быть не-ноль, прежде чем проверять
обработка сообщений и вызов
с сообщением.
Ничто не изменилось бы во всех объектах или классах, требующих делегирования для себя.
Ответ 4
Да, я думаю, вопрос об удобстве для нескольких протоколов выглядит примерно так:
@interface MyViewController () <protocol1, protocol2, protocol3>