Как установить делегата в другом классе - PullRequest
6 голосов
/ 13 октября 2010

Я работаю с NSXMLParser, который анализирует XML-документ.Вы должны установить делегат, который мы будем вызывать каждый раз, когда анализатор находит элемент.Во всех примерах, которые я просмотрел, делегат был тем же классом, который он создает:

NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:filename];
[parser setDelegate: self];

В других примерах делегат был родительским.Что делать, если я хочу, чтобы другой класс (не связанный с тем же классом) обрабатывал делегат.Каков синтаксис для этого?

Я сделал это, но это не работает.

@interface Util : NSObject <NSXMLParserDelegate> {
    //Some code here
}

//functions for the delegate and the implementation on the Util.m
//.
//.
//.

Спасибо за ваши ответы.

Я забыл сказатьчто при вызове делегата я предполагал, что это будет что-то вроде этого:

[parser setDelegate:Util];

Я предполагал, что, зная, что для установки делегата для того же класса сообщение будет:

[parser setDelegate:self];

1 Ответ

17 голосов
/ 13 октября 2010

Сначала необходимо создать объект Util.

Делегат должен быть фактическим экземпляром класса:)

Util* util = [[Util alloc] init];
[parser setDelegate:util];
[util release];
...