Метод протокола с самостоятельной ссылкой - PullRequest
0 голосов
/ 08 июля 2011

В моем проекте iOS я создаю протокол с именем "XMLElement", и у меня возникла проблема с методом этого протокола, который должен возвращать экземпляр моего протокола:

@protocol XMLElement <NSObject>
-(XMLElement *) GetParent;
@end

Метод GetParent возвращает родительский элемент, который является реализацией протокола XMLElement.

Но это не компилируется!

Должен ли я возвращать id объект?Другого пути нет?

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

XMLElement - это протокол, поэтому вам нужно

@protocol XMLElement <NSObject>
-(id <XMLElement>) GetParent;
@end

Не связано с проблемой: нетипично, чтобы имя метода начиналось с заглавной буквы.Это должно быть getParent, а не GetParent.

1 голос
/ 08 июля 2011

Протокол не является собственным типом, поэтому вам нужно написать:

- (id<XMLElement>) getParent;

(я рекомендую придерживаться соглашений и начинать методы с строчных букв)

...