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