完成解析XML后启动事件/委托

时间:2010-01-09 13:24:14

标签: iphone objective-c delegates

问题是我是iPhone和Objective C开发的新手,我想知道完成任务后调用某个函数的最佳方法是什么。

在我的应用程序中,我所做的是使用一些vars加载Internet托管的XML。为此,我创建了这个由主视图调用的函数:

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

其中CONFIG_URL是具有有效NSString(XML url)的常量

这个类解析XML并提取变量,但问题是,如何判断该过程已完成并可以继续?

我的第一个想法是在解析器类(ApplicationVariablesLoader)中创建一个视图实例作为委托,但我想遵循最佳实践。

谢谢!

1 个答案:

答案 0 :(得分:0)

正确的方法是使用ApplicationVariablesLoaderDelegate之类的(可能是可选的)方法创建一个名为- (void)variablesLoaderDidFinishParsing:(ApplicationVariablesLoader *)variablesLoader的协议,然后添加类似

的内容

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

将相应的成员变量添加到ApplicationVariablesLoader的实现中。完成后,ApplicationVariablesLoader应检查[self.delegate respondsToSelector:@selector(variablesLoaderDidFinishParsing:)],如果已实施,请致电[self.delegate variablesLoaderDidFinishParsing:self]

您的观点应该实现variablesLoaderDidFinishParsing,并在那里做任何您想做的事。

有关更多示例,请查看UIWebViewDelegateUITextFieldDelegateNSXMLParserDelegate等。