iOS XYPieChart数据源方法未被触发

nig*_*ent 2 delegates protocols ios

我正在尝试实现XYPieCharts但我目前无法显示它.在调试时,我在数据源方法中放置了一些日志语句,但没有一个被触发.

我已经包含了委托(未使用)和数据源

@interface DwinklySalaryViewController : UIViewController <UITextFieldDelegate,  XYPieChartDelegate, XYPieChartDataSource>

@property (nonatomic, strong) IBOutlet XYPieChart *salaryPieChart;
Run Code Online (Sandbox Code Playgroud)

我还检查过我已将此IBOutlet链接到Interface Builder中的XYPieChart元素.Interface Builder中没有委托/数据源出口,因此我在程序中以编程方式添加了该出口.此选项和其余选项在包含XYPieChart视图的视图控制器的viewDidLoad方法中设置.

[_salaryPieChart setDelegate:self];
[_salaryPieChart setDataSource:self];
Run Code Online (Sandbox Code Playgroud)

然后我实现了数据源协议所需的方法:

- (NSUInteger)numberOfSlicesInPieChart:(XYPieChart *)pieChart
{
    NSLog(@"Number of slices: %d", pieChartSlices.count);
    return pieChartSlices.count;
}

- (CGFloat)pieChart:(XYPieChart *)pieChart valueForSliceAtIndex:(NSUInteger)index
{
    NSLog(@"Value slice: %d", [[pieChartSlices objectAtIndex:index] intValue]);
    return [[pieChartSlices objectAtIndex:index] intValue];
}

- (UIColor *)pieChart:(XYPieChart *)pieChart colorForSliceAtIndex:(NSUInteger)index
{
    NSLog(@"Returning %@", [sliceColors objectAtIndex:(index % sliceColors.count)]);
    return [sliceColors objectAtIndex:(index % sliceColors.count)];
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我错过了什么导致数据源方法不会触发?

rde*_*mar 7

似乎XYPieChart的工作方式,您可以在启动时调用reloadData.它在viewDidLoad或viewDidAppear中都可以正常工作.