1

ジョン ワーズワースのチュートリアル ( http://www.johnwordsworth.com/2011/10/adding-charts-to-your-iphone-ipad-app-using-core-plot/ ) に従って、CorePlot で折れ線グラフを作成しました。

後で、グラフに使用できるように、Web サイトから JSON データを取得することにしました。

すべての URL 接続方法は、私のViewController.mファイルで実行されます。indicatorそこで、すべての JSON データを含むという名前の NSArray を作成しました。

私の問題は、グラフのすべてのパラメーターが、文字列の配列 " " (で定義) を使用して x 軸ラベルをカスタマイズしSimpleScatterPlot.mたいという別の NSObject クラスで定義されていることです。indicatorViewController.m

この JSON データ配列を で使用できるようにするには、どうすればよいSimpleScatterPlot.mですか?
試し#import "ViewController.h"ましたが解決しませんでした。

よろしくお願いします。

4

3 に答える 3

0

私が正しく理解しているかどうかはわかりませんが、SimpleScatterView.m からインジケーター nsarray にアクセスしようとしたのではなく、ViewController.m から値を設定しようとしたと思います。

1) SimpleScatterView.m で public NSArray を定義し、合成します。

2) アクセスを試みる代わりに、ViewControler.m で「prepareForSegue」を使用して、destinationSegueController でインジケータを設定します。

3) SimpleScatterView.m で「-(void)setIndicator:(NSArray *)indicator」を実装し、必要に応じて GUI を更新します。

「モデル - ビュー - コントローラー」パラダイムでは、ViewControllers を使用して通信などを実行しないことをお勧めしますが、それは別のスレッド用です。

于 2013-02-19T15:24:42.213 に答える
0

あなたがやろうとしていることを間違って読んでいない場合、私の推測ではSimpleScatterView、ビュー内から適切に使用できると思います (これは、実際にはUIViewControllerであると仮定します)。SimpleScatterViewUIView

この場合、コントローラーがデータをダウンロードしSimpleScatterViewたら、ビュー コントローラーに追加することでインスタンス化して表示できますview

... <data has been downloaded> ...
SimpleScatterView* scatterView = [[SimpleScatterView alloc] initWithFrame:...];
[self.view addSubview:scatterView];

を初期化するときSimpleScatterViewに、データ配列への参照を渡すことができます (たとえば、カスタムの init メソッドで、またはプロパティを使用して)。例えば:

SimpleScatterView* scatterView = [[SimpleScatterView alloc] initWithFrame:... andData:(NSArray*)...];

また:

scatterView.dataSet = <your_json_array>;

もちろん、このデザインに代わるものはたくさんあります。具体的には、次のことを言及します。

  1. モデルクラスを使用してすべてのデータを処理する可能性。たとえば、コントローラーがモデルにデータを書き込み、プロットビューがそこからデータを読み取ります。この場合、アクセスを容易にするために、シングルトンを介してモデルを実装できます。

  2. プロット ビューに "dataSource" を使用する可能性: これには、ビューとそのデータ ソース (getDataメソッドなど) の間のプロトコルを定義する必要があります。ビュー コントローラーがデータ ソースの役割を果たします (つまり、上記の例のように配列をプロット ビューに渡す代わりに、コントローラーへの参照を渡すと、ビューがそのデータにアクセスします)。

于 2013-02-19T15:24:55.293 に答える
0

Viewcontroller でプロパティを作成し、合成します。次に、JSON データをプロパティに渡します。

To access the array in SimpleScatterView.m:
    Viewcontroller *viewcontrol = [[ViewController alloc] init];
    You can then access the array by using viewcontrol.indicator.
    NSLog(@"%@",viewcontrol.indicator);
于 2013-02-19T15:25:43.520 に答える