2011-01-04 11 views
1

私はUITableViewを持つアプリケーションを作成しています。iOSプロトコルと代理人。基本的な質問

データは、ネット経由で取得されたXMLから取得されます。私はこれにNSXMLParserを使用しています。私は結果の解析をnsloggedてきたように今これは、完璧に動作

@protocol NSXMLParserDelegate; 
@interface MainView : UITableViewController <NSXMLParserDelegate> 

:私はそれはそれのためのプロトコルを実装し、このための代理人として私のtableViewコントローラを使用しました。 NStableViewにデータを取り込みたいので、データソースとデリゲートを追加する必要があります。

UITableViewDataSource 

UITableViewDelegate 

プロトコルで両方とも。

同じクラスでこれを行うにはどうすればいいですか?同じクラスで複数のプロトコルを実装できますか?パーザの委任を別のオブジェクトに移動し、このコントローラをこの目的に使用する必要がありますか?

基本的には、これを行う最もよい方法は何ですか?

+0

私は実際に同じクラスでプロトコルを実装できることを発見しましたが、今は、これが正しい方法であるかどうかを知りたいのですが、この種のものはMVC – cromestant

答えて

2

は確かにあなたに感謝したいと、あなたはクラスのように、多くのプロトコルを実装することができます

@interface MainView : UITableViewController <NSXMLParserDelegate, UITableViewDataSource, UITableViewDelegate> 

はそれを行うための「正しい」方法ということですか?私はそれに「正しい」答えがあるとは思わない。純粋主義者は否定するかもしれない。私はそれが意味を成し遂げていると言いたいのですが、それを別のクラスに分割するのが面倒です。たとえば、ビューコントローラがシンプルメニューの場合、ビューコントローラはテーブルビューのデリゲートとデータソースにもなります。それを複数のクラスに分割する利点はありません。

XMLを解析する必要がある場合は、私の直感によれば、もう少し複雑になることが示唆されます。おそらく、データソースとXMLパーサとコントローラクラスを実装するデータクラスがありますか?