Запустить событие / Делегат после завершения анализа XML - PullRequest
0 голосов
/ 09 января 2010

Дело в том, что я новичок в разработке для iPhone и Objective C, и я хотел бы знать, каков наилучший способ вызова какой-либо функции после завершения задачи.

В моем приложении я загружаю размещенный в Интернете XML с некоторыми переменными. Для этого я создал эту функцию, вызываемую основным видом:

ApplicationVariablesLoader * loader = [[ApplicationVariablesLoader alloc] initWithURL: CONFIG_URL];

где CONFIG_URL - это константа с допустимой строкой NSSt (URL-адрес XML)

Этот класс анализирует XML и извлекает переменные, но дело в том, как мне узнать, что этот процесс завершен и может продолжаться?

Моя первая идея - создать экземпляр представления в качестве делегата внутри класса анализатора (ApplicationVariablesLoader), но я хотел бы следовать рекомендациям.

Спасибо!

1 Ответ

0 голосов
/ 09 января 2010

Правильным способом было бы создать протокол с именем ApplicationVariablesLoaderDelegate с (возможно, необязательным) методом, например - (void)variablesLoaderDidFinishParsing:(ApplicationVariablesLoader *)variablesLoader, а затем добавить что-то вроде

@property (nonatomic, assign) id< ApplicationVariablesLoaderDelegate > delegate;

с соответствующей переменной-членом вашей реализации ApplicationVariablesLoader. ApplicationVariablesLoader должен после проверки завершения для [self.delegate respondsToSelector:@selector(variablesLoaderDidFinishParsing:)], и, если он реализован, вызвать [self.delegate variablesLoaderDidFinishParsing:self].

Ваш взгляд должен реализовывать variablesLoaderDidFinishParsing и делать там, что вы хотите.

Посмотрите на UIWebViewDelegate, UITextFieldDelegate, NSXMLParserDelegate и т. Д. Для получения дополнительных примеров.

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