バインディング、デリゲート、またはデータ ソースを介して NSTableView にデータを入力する方法は複数あります。
XML-RPC サーバーからかなり頻繁に変更されるデータでテーブルビューを埋める最善の方法は何ですか? 私は Mac OS X 10.5 のみをターゲットにしています。その方法については多くの例がありますが、決定的なものはありません。
ご意見はありますか?
バインディング、デリゲート、またはデータ ソースを介して NSTableView にデータを入力する方法は複数あります。
XML-RPC サーバーからかなり頻繁に変更されるデータでテーブルビューを埋める最善の方法は何ですか? 私は Mac OS X 10.5 のみをターゲットにしています。その方法については多くの例がありますが、決定的なものはありません。
ご意見はありますか?
私が正しく理解していれば、それは実際には2つの別々の質問です. XML-RPC データを取得するにはどうすればよいですか?また、テーブルビューを作成するにはどうすればよいですか?
XML-RPC にはあまり詳しくありませんが、ざっと見てみると、NSXML* クラスを使用して自分で解析するか、いくつかのサードパーティ フレームワークのいずれかを使用できるようです。最初に利用可能なフレームワークを調べるのは良い考えだと思います.1つを最終的に使用しない場合でも、そのルートに行く場合、XMLデータを自分で解析する方法についての良いアイデアが得られるはずです.
XML-RPC リクエストからデータを取得したら、それをコントローラ クラスのある種のデータ構造に格納する必要があります。辞書や基本的な文字列の配列を使用したり、カスタム オブジェクトを作成してデータを表現したりすることができますが、それは実際に行っていることの複雑さに依存します。コントローラー オブジェクトは、テーブル ビューにデータを提供し、更新を処理し、実行する必要があるその他のタスクを処理します。コントローラから直接 XML-RPC リクエストを作成することも、コードを分離するために追加のクラスを作成することもできます。
データ ソース メソッドまたはバインド (配列コントローラーと共に) を使用するかどうかは、実際には問題ではありません。どちらも正常に機能し、独自の利点があります。Cocoa を使い始めたばかりの場合は、必ずデータ ソース メソッドを使用してください。バインディングには、Objective-C と Cocoa の中間的な知識が必要であり、それ以外の場合は使用とデバッグが難しくなります。
非常にシンプルで柔軟なので、データ ソースを使用します。NSTableView にデータを提供するオブジェクトは、2 つの関数のみを実装する必要があります。
オブジェクトがデータを内部に保存する方法は完全にあなた次第 (柔軟性) であるため、xml-rpc 応答を解析する方法に最適なものを選択できます。
この xmlrpc フレームワークの方がはるかに使いやすいことがわかりました。もちろん、これらは実際には 2 つの異なる質問/問題であるため、前に説明したようにラッピングを行う必要があります。
私は最善の方法が何であるかを知りません。私は本当に良い方法があるとは思わないので、「最善の方法」は実際には「最も悪い方法」になるでしょう。
Web Services Coreを見てください。これは、XML-RPC および SOAP Web サービスとやり取りするための Carbon API です。私は SOAP 機能しか使用していませんが、XML-RPC も同様に機能するはずです。ココアではなくカーボンなのでつらいです。しかし、書く必要のないネットワーク コードがたくさんあるので、それが有利になるはずです。
その後、WSCore とやり取りするすべてのものを 1 つのクラスにまとめて NSTableViewDataSource プロトコルを実装し、テーブル ビューをテーブルのデータ ソースとしてポイントするだけです。Web サービスからのデータが変更されるたびに、reloadData を呼び出すだけで、テーブル ビューが更新されます。
幸運を。OS X での Web サービスのサポートはせいぜい苦痛なので、必要になるでしょう。