У меня есть этот код в моем ViewController:Делегат не работает
- (GraphModel *)graphModel
{
if (!graphModel) {
graphModel = [[GraphModel alloc] init];
NSLog(@"graphModel = %@", graphModel);
}
return graphModel;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.graphView.delegate = [self graphModel];
NSLog(@"self.graphview.delegate = %@", self.graphView.delegate);
[self updateUI];
}
но NSLog просто говорит (нуль) для self.graphview.delegate даже несмотря на то, NSLog в graphModel говорит, что я успешно создан объект. Как это может быть?
это код 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
и тогда я @synthesize delegate
в graphView.m
когда память графического представления настраивается? Я думал, что это было сделано автоматически? – ladookie
Экземпляры автоматически не присваиваются переменным-членам. Если ваш член graphView является IBOutlet и подключен к чему-то в Interface Builder, вы можете предположить, что он должен быть загружен после получения viewDidLoad. Если вы похожи на меня, вы, возможно, подключили его к интерфейсу Builder, но не сохранили свой XIB, переключились на Xcode и создали более старую копию. – Tommy
Да, graphView - это IBOutlet, и я просто понял, что забыл подключить его к интерфейсу, LOL. Благодарю. – ladookie