您好我已搜索并搜索,然后我决定将其发布在此处 - 这个问题对您来说可能很愚蠢,但它已经花了我一天的时间:(
所以我试图使用XYPieChart绘制一些饼图,这里有一些来自XYPieChart的代码:
XYPieChart.h
@class XYPieChart;
@protocol XYPieChartDataSource <NSObject>
@required
- (NSUInteger)numberOfSlicesInPieChart:(XYPieChart *)pieChart;
- (CGFloat)pieChart:(XYPieChart *)pieChart valueForSliceAtIndex:(NSUInteger)index;
@optional
- (UIColor *)pieChart:(XYPieChart *)pieChart colorForSliceAtIndex:(NSUInteger)index;
- (NSString *)pieChart:(XYPieChart *)pieChart textForSliceAtIndex:(NSUInteger)index;
@end
@protocol XYPieChartDelegate <NSObject>
@optional
- (void)pieChart:(XYPieChart *)pieChart willSelectSliceAtIndex:(NSUInteger)index;
- (void)pieChart:(XYPieChart *)pieChart didSelectSliceAtIndex:(NSUInteger)index;
- (void)pieChart:(XYPieChart *)pieChart willDeselectSliceAtIndex:(NSUInteger)index;
- (void)pieChart:(XYPieChart *)pieChart didDeselectSliceAtIndex:(NSUInteger)index;
@end
XYPieChart.m
@synthesize dataSource = _dataSource;
@synthesize delegate = _delegate;
然后在我自己的视图中控制器XYPieChartViewTestViewController.h
#import <UIKit/UIKit.h>
#import "XYPieChart.h"
@interface XYPieChartViewTestViewController : UIViewController <XYPieChartDelegate, XYPieChartDataSource>
@property (weak, nonatomic) IBOutlet XYPieChart *MyPieCharts;
@end
和XYPieChartViewTestViewController.m
#import "XYPieChartViewTestViewController.h"
@interface XYPieChartViewTestViewController ()
@end
@implementation XYPieChartViewTestViewController
@synthesize MyPieCharts = _MyPieCharts;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_MyPieCharts setDelegate:self];
}
但是在执行[_MyPieCharts setDelegate:self];时,有一个转储:
2012-10-16 10:33:53.100 XYPieChartViewTest [3859:11303] - [UIView setDelegate:]:无法识别的选择器发送到实例0x9040680 * 第一次抛出调用堆栈: libc ++ abi.dylib:terminate调用抛出异常
如果我在“[_ MyPieCharts setDelegate:self];”和PO self._MyPieCharts.delegate这一行放置一个断点,它会说:
po self.MyPieCharts.delegate 错误:执行被中断,原因:尝试取消引用无效的ObjC对象或向其发送无法识别的选择器。 该过程已在执行前返回到该状态。我上传了项目here,因为我无法发布截屏。
这是否意味着self.MyPieCharts.delegate未初始化?你知道我该怎么办吗?
非常感谢!
答案 0 :(得分:2)
似乎MyPieCharts未在Interface Builder中连接。
答案 1 :(得分:0)
尝试将委托设置为:
[_MyPieCharts setDelegate:XYPieChartDelegate];