我正在创建一个具有UITableView的应用。
数据将来自通过网络获取的XML。我正在使用NSXMLParser,它可以工作。我使用tableView控制器作为代理,因此它为它实现了协议:
@protocol NSXMLParserDelegate;
@interface MainView : UITableViewController <NSXMLParserDelegate>
现在这完全正常,因为我已经记录了生成的解析。 现在,我想填充NStableView,所以阅读我发现我需要添加数据源和委托。
UITableViewDataSource
和
UITableViewDelegate
这两个都是协议。
我如何在同一课堂上这样做?我可以使用同一个类实现多个协议吗?我应该将解析器的委托移动到另一个对象并使用此控制器来实现此目的吗?
基本上问题是最好的方法是什么?
谢谢
答案 0 :(得分:2)
当然,您可以根据需要在类中实现尽可能多的协议:
@interface MainView : UITableViewController <NSXMLParserDelegate, UITableViewDataSource, UITableViewDelegate>
这是“正确”的做法吗?我不认为这是一个“正确”的答案。纯粹主义者可能会说不。我会说这样做有意义,但错误的是将它分成不同的类。例如,如果您的视图控制器是一个简单的菜单,那么您的视图控制器也可以作为您的表视图委托和数据源;将它分解为多个类是没有优势的。
如果你必须解析XML,我的直觉表明它开始变得更复杂一些。也许有一个实现数据源和XML解析器的数据类和一个控制器类?