2011-03-04 4 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을 반환하고 .delegate는 실제로 getter 또는 setter를 호출하는 것입니다. 다음을 추가하는 것이 좋습니다.

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

빠른 확인으로.

+0

언제 graphview의 메모리가 설정 되나요? 나는 그것이 자동적으로하게된다라고 생각했다? – ladookie

+1

인스턴스가 멤버 변수에 자동으로 제공되지 않습니다. graphView 멤버가 IBOutlet이고 Interface Builder에서 무언가에 연결되어 있다면 viewDidLoad를 얻은 후에로드해야한다고 가정하는 것이 옳습니다. 나 같은 사람이라면 인터페이스 빌더에서 XIB를 저장하지 않고 Xcode로 저장하지 않고 Xcode로 다시 전환하고 이전 사본으로 빌드했을 수도 있습니다. – Tommy

+0

예, graphView는 IBOutlet이며 인터페이스 작성기에서 롤업하는 것을 잊어 버렸습니다. 롤. 감사. – ladookie