Синтаксис для нескольких протоколов - PullRequest
15 голосов
/ 18 февраля 2011

Что такое синтаксис Objective C для нескольких протоколов?

Ответы [ 4 ]

22 голосов
/ 18 февраля 2011

Не могли бы вы уточнить ваш вопрос?В противном случае это правильный способ объявить класс, который соответствует нескольким протоколам.Вы указываете протоколы, которым класс соответствует после объявления суперкласса в заголовочном файле классов.

@interface MyClass : MySuperClass <Delegate1, Delegate2, Delegate3> {
     //instance variables
}

//properties

//methods
1 голос
/ 04 декабря 2017

Вы можете получить несколько протоколов двумя способами:

Метод 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>
0 голосов
/ 12 апреля 2012

Да, я полагаю, что вопрос удобства использования нескольких протоколов выглядит примерно так:

@interface MyViewController () <protocol1, protocol2, protocol3>
0 голосов
/ 19 февраля 2011

Для объекта, имеющего несколько делегатов (в отличие от делегата для нескольких объектов или классов):

  1. Делегирование объекта должно иметь NSArray экземпляра делегата переменные.

  2. Метод установки setDelegate будет затем нужно добавить объект делегата в этот массив вместо просто присвоение его одному экземпляру переменная.

  3. Код отправки делегату будет иметь перебрать делегата NSArray, вместо проверки на только одна переменная экземпляра делегата быть ненулевым, перед проверкой обработка сообщений и вызов с сообщением.

Ничего особенного не изменилось бы во всех объектах или классе, запрашивающем делегирование для себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...