Objective c 访问Core Plot Touch事件的数据阵列时崩溃

Objective c 访问Core Plot Touch事件的数据阵列时崩溃,objective-c,ios,core-plot,Objective C,Ios,Core Plot,我浏览了互联网和这些论坛。我已经检查了GalleryPlot示例代码。我仍然有这个问题 我正在iPhone应用程序中使用Core Plot绘制散点图。这些图表画得很漂亮。 我已经做了以下工作: 通过将CPTSatterPlotDataSource和CPTSatterPlotDelegate协议添加到我的视图控制器类中,添加了触摸打印点的功能 已实现-(void)散点图:(CPTSatterPlot*)绘图SYMBOL已在my view控制器类中选择了TrecordIndex:(NSIntege

我浏览了互联网和这些论坛。我已经检查了GalleryPlot示例代码。我仍然有这个问题

我正在iPhone应用程序中使用Core Plot绘制散点图。这些图表画得很漂亮。 我已经做了以下工作:

  • 通过将CPTSatterPlotDataSource和CPTSatterPlotDelegate协议添加到我的视图控制器类中,添加了触摸打印点的功能
  • 已实现-(void)散点图:(CPTSatterPlot*)绘图SYMBOL已在my view控制器类中选择了TrecordIndex:(NSInteger)索引{}
NSLog语句显示正在调用该方法,并且发送的索引是有效的整数

如果我添加任何访问包含绘图数据的NSArray的代码,则应用程序会因EXC_BAD_访问而崩溃。数据数组是我实现该方法的视图控制器的成员变量

在尝试访问阵列之前,我尝试重新加载数据,但这并没有解决问题

以下是我的委托方法:

- (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”行

以下是我的视图控制器类声明:

@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
@界面图形视图:UIViewController{
IBOutlet CPTGraphHostingView*myHostingView;
CPTXYGraph*myGraph;
NSArray*我们的宝宝批次数据;
}
@属性(非原子,保留)IBOutlet CPTGraphHostingView*myHostingView;
@财产(非原子,保留)NSArray*dataForOurBabyPlot;
//类方法
@结束

我遗漏了什么?

当您到达这一点时,调用
-reloadDataIfNeeded
是不必要的,Core Plot已经有了它需要的所有数据


EXC\u坏访问崩溃是由指向坏数据的
dataForOurBabyPlot
引起的。它很可能被释放,系统将该内存重新用于其他用途。检查内存管理,确保阵列在使用完毕之前不会被释放。

此时不需要调用
-reloadDataIfNeeded
,Core Plot已经拥有了所需的所有数据


EXC\u坏访问崩溃是由指向坏数据的
dataForOurBabyPlot
引起的。它很可能被释放,系统将该内存重新用于其他用途。检查内存管理,确保在完成之前不会释放该数组。

dataForOurBabyPlot管理的数据类型是什么?dataForOurBabyPlot是NSDictionary的数组。每个字典包含两个NSNumber。dataForOurBabyPlot管理的数据类型是什么?dataForOurBabyPlot是NSDictionary的数组。每本字典包含两个NSN号码。谢谢。我对Objective-C非常陌生,我使用“=”来设置dataForOurBabyPlot,而不是合成方法(setDataForOurBabyPlot:)。吸取教训,谢谢。我对Objective-C非常陌生,我使用“=”来设置dataForOurBabyPlot,而不是合成方法(setDataForOurBabyPlot:)。吸取的教训。