2011-03-04 7 views
0

私は私のViewControllerでこのコードを持っています。どうすればいいの? 委任機能していない

この

はgraphViewDelegate

@class GraphView; 

@protocol GraphViewDelegate 
- (double)yValueForGraphView:(GraphView *)requestor atPosition:(int)i withPrecision:(int)precision; 
- (double)scaleForGraphView:(GraphView *)requestor; 
@end 

@interface GraphView : UIView { 
    id <GraphViewDelegate> delegate; 
} 

@property (assign) id <GraphViewDelegate> delegate; 

@end 

ためのコードであり、その後、私はgraphView.m

答えて

3

ほとんどの推測で@synthesize delegateを持っている:graphViewがnilです。 nilオブジェクト上のメソッドを呼び出すと何の効果もなく、nilが返され、.delegateは実際にはgetterまたはsetterを適切に呼び出すことです。あなたが追加することをお勧めします:

NSLog(@"self.graphview = %@", self.graphView); 

クイック検証として。

+0

graphviewのメモリはいつセットアップされますか?私はそれが自動的に行われたと思った? – ladookie

+1

インスタンスはメンバー変数に自動的に与えられません。 graphViewメンバがIBOutletで、Interface Builderで何かに接続されている場合は、viewDidLoadを取得した後にロードする必要があると想定するのは当然です。あなたが私のようなものであれば、Interface Builderで接続してXIBを保存せずにXcodeに戻し、古いコピーでビルドした可能性があります。 – Tommy

+0

はい、graphViewはIBOutletです。私はインターフェイスビルダーで覚えていることを忘れていました、笑。ありがとう。 – ladookie