Я исследовал Интернет и эти форумы.Я изучил пример кода GalleryPlot.И у меня все еще есть проблемы с этим.
Я использую Core Plot для рисования графиков диаграммы рассеяния в своем приложении для iPhone.Графики прекрасно рисуют.Я сделал следующее:
- добавил возможность касаться точки графика, добавив протоколы CPTScatterPlotDatasource и CPTScatterPlotDelegate в мой класс View Controller.
- реализовано - (void) scatterPlot:(CPTScatterPlot *) plot plotSymbolWasSelectedAtRecordIndex: (NSUInteger) index {} в моем классе контроллера представления
Операторы NSLog показывают, что метод вызывается и отправляемый индекс является допустимым целым числом.
Если я добавлю какой-либо код, который обращается к NSArray, содержащему данные для графика, приложение аварийно завершает работу с EXC_BAD_ACCESS.Массив данных является переменной-членом контроллера представления, где я реализую метод.
Я попытался перезагрузить данные непосредственно перед тем, как попытаться получить доступ к массиву, но это не помогло.
Вот мой метод делегата:
- (void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index {
NSLog(@"Touched by me: index = %d", index);
[myGraph reloadDataIfNeeded];
NSNumber* x = [[dataForOurBabyPlot objectAtIndex:index]valueForKey:@"x"];
}
Сбой происходит в строке "NSNumber * x".
Вот мое объявление класса View Controller:
@interface GraphView : UIViewController <CPTScatterPlotDataSource,
CPTScatterPlotDelegate> {
IBOutlet CPTGraphHostingView* myHostingView;
CPTXYGraph* myGraph;
NSArray* dataForOurBabyPlot;
}
@property (nonatomic, retain) IBOutlet CPTGraphHostingView* myHostingView;
@property (nonatomic, retain) NSArray* dataForOurBabyPlot;
// class methods
@end
Чего мне не хватает?