Предупреждение при выполнении кода для CorePlot - PullRequest
0 голосов
/ 25 ноября 2011
- (void)viewDidLoad
{
graph = [[CPTXYGraph alloc] initWithFrame: self.view.bounds];   
CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
hostingView.hostedGraph = graph;
CPTPieChart *pieChart = [[CPTPieChart alloc] init];
pieChart.dataSource = self;
pieChart.pieRadius = 100.0;
pieChart.identifier = @"PieChart1";
pieChart.startAngle = M_PI_4;
pieChart.sliceDirection = CPTPieDirectionCounterClockwise;

self.pieData=   [NSMutableArray arrayWithObjects:[NSNumber numberWithDouble:90.0], 
                [NSNumber numberWithDouble:20.0],
                [NSNumber numberWithDouble:30.0],
                [NSNumber numberWithDouble:40.0],
                [NSNumber numberWithDouble:50.0], 
                [NSNumber numberWithDouble:60.0], nil];

CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
[graph applyTheme:theme];
[graph addPlot:pieChart];
[pieChart release];
}

Я нашел этот код в сети. Этот код работает нормально, но я получаю два предупреждения на
pieChart.dataSource = self;

В нем говорится.

предупреждение: класс 'SOTC_CorePlotExampleViewController' не реализует протокол 'CPTPlotDataSource'

предупреждение: семантическая проблема: присвоение 'id' несовместимого типа 'SOTC_CorePlotExampleViewController *'

Ответы [ 3 ]

2 голосов
/ 25 ноября 2011

добавьте <CPTPlotDataSource> в конец объявления вашего пользовательского контроллера представления в файле @interface (.h):

@interface YourViewController  : UIViewController <CPTPlotDataSource>

(измените YourViewController в моем примере на любое имя вашего контроллера представления)

1 голос
/ 25 ноября 2011

Ты это сделал?

@interface viewController : UIViewController <CPTPlotDataSource> 

viewController должен реализовать указанный протокол

0 голосов
/ 25 ноября 2011

Вы должны импортировать протоколы в файл .h "CPTPlotDataSource", например @interface:UIViewController < CPTPlotDataSource >

...