2011-12-06 13 views
0

単純なヒストグラムを描画するにはs7graphviewライブラリを使用する必要があります。 -(IBAction)histogram:(id)sender;というカスタム関数があります。この関数では、画像からのすべてのピクセルがRGB表現として配列に渡されます。ピクセル数がカウントされ、赤、緑、青の配列があります。私はNSLogまたは何かに送信することができますが、私は- (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndex;に3つの配列を送信しようとすると問題があります。両方の関数が同じ.mファイルにあり、どのようにそれらの間でデータを渡すのかわかりません。なぜなら、redArrayを書くとき、Xcodeは私にこの名前を示唆しないからです。関数間でデータ(配列)を渡す方法

+0

:あなたのIBAction方法では、おそらくのようなものをやってます。これが独自の関数であれば、より多くのデータを渡すためのパラメータを追加できます。 (あなたの投稿は事実上理解できません。質問は分かりません。) –

+0

' - (NSArray *)graphView :(S7GraphView *)graphView yValuesForPlot :(NSUInteger)plotIndex;'は私の関数ではありません。それはデリゲート関数です。 –

+0

デリゲートメソッドで3つの配列を表示する方法を見つける必要があります。 3つの配列をivarsにして、そのgraphViewデリゲートメソッド内からアクセスしようとしましたか? –

答えて

1

- (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndexはデリゲートメソッドであるため、S7GraphViewオブジェクトへの代理人として実装されている必要があります。私はplotIndexがあなたの様々な色の配列に対応するもの見当がつかない

- (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndex 
{ 
    if (plotIndex == <some index value>) 
     return redArray; 
    else 
     return nil; 
} 

が、あなたのアイデアを得る必要があります:あなたは、あなたの.m実装にそのように定義し、明示的に呼び出すことはありません。

オブジェクトにデータが必要な場合は、delegateメソッドが呼び出されます。

これは、UITableViewDelegateUITableViewDataSourceメソッドの実装と同じではありません。 UITableView方法-reloadDataが呼び出されると、それはあなたのビューコントローラを呼びます「私は、私はドン(確信しているS7GraphView

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = <... dequeue or created ... >. 

    /* 
     do some cell set up code based on indexPath.section and indexPath.row 
    */ 

    return cell; 
} 

同様経由UITableViewCellオブジェクトを供給するために(仮定それはテーブルのデリゲート/データソースがあります)それをすべて見るためのAPIがあります)。 Xcodeは常に(正しく)プロンプトを表示しません

- (IBAction)histogram:(id)sender 
{ 
    // maybe you recalculate your red, green, and blue component arrays here and cache 
    // or maybe you calculate them when requested by the delegate method 

    // tell the S7GraphView it needs to update 
    // (not sure what the reload method is actually called) 
    [self.myS7GraphView reloadGraph]; 
} 
+0

ありがとうございます –

関連する問題