Вопрос

Сейчас я начал с Core Plot и возник в некоторых проблемах. Я следовал учебному пособию с этой страницы: http://www.switchonthecode.com/tutorials/using-core-lot-in-an-iphone-pplication

и завершено с помощью инструкций с этой страницы: http://code.google.com/p/core-plot/wiki/usingcoreplotinapplications (например, -all_load).

Но у меня все еще есть проблемы, я получаю следующие ошибки:

error: incompatible type for argument 1 of 'setMajorIntervalLength:'
error: request for member 'axisLabelOffset' in something not a structure or union
error: incompatible type for argument 1 of 'setMajorIntervalLength:'
error: request for member 'axisLabelOffset' in something not a structure or union
error: request for member 'bounds' in something not a structure or union
error: request for member 'defaultPlotSymbol' in something not a structure or union
error: request for member 'bounds' in something not a structure or union

Кто -нибудь, кто знает, что я делаю не так? Это мой код:

- (void)viewDidLoad {
    [super viewDidLoad];

    graph = [[CPXYGraph alloc] initWithFrame: self.view.bounds];

    CPLayerHostingView *hostingView = (CPLayerHostingView *)self.view;
    hostingView.hostedLayer = graph;
    graph.paddingLeft = 20.0;
    graph.paddingTop = 20.0;
    graph.paddingRight = 20.0;
    graph.paddingBottom = 20.0;

    CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-6)
                                                   length:CPDecimalFromFloat(12)];
    plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-5)
                                                   length:CPDecimalFromFloat(30)];

    CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;

    CPLineStyle *lineStyle = [CPLineStyle lineStyle];
    lineStyle.lineColor = [CPColor blackColor];
    lineStyle.lineWidth = 2.0f;

    axisSet.xAxis.majorIntervalLength = [NSDecimalNumber decimalNumberWithString:@"5"];
    axisSet.xAxis.minorTicksPerInterval = 4;
    axisSet.xAxis.majorTickLineStyle = lineStyle;
    axisSet.xAxis.minorTickLineStyle = lineStyle;
    axisSet.xAxis.axisLineStyle = lineStyle;
    axisSet.xAxis.minorTickLength = 5.0f;
    axisSet.xAxis.majorTickLength = 7.0f;
    axisSet.xAxis.axisLabelOffset = 3.0f;

    axisSet.yAxis.majorIntervalLength = [NSDecimalNumber decimalNumberWithString:@"5"];
    axisSet.yAxis.minorTicksPerInterval = 4;
    axisSet.yAxis.majorTickLineStyle = lineStyle;
    axisSet.yAxis.minorTickLineStyle = lineStyle;
    axisSet.yAxis.axisLineStyle = lineStyle;
    axisSet.yAxis.minorTickLength = 5.0f;
    axisSet.yAxis.majorTickLength = 7.0f;
    axisSet.yAxis.axisLabelOffset = 3.0f;

    CPScatterPlot *xSquaredPlot = [[[CPScatterPlot alloc]
                                    initWithFrame:graph.defaultPlotSpace.bounds] autorelease];
    xSquaredPlot.identifier = @"X Squared Plot";
    xSquaredPlot.dataLineStyle.lineWidth = 1.0f;
    xSquaredPlot.dataLineStyle.lineColor = [CPColor redColor];
    xSquaredPlot.dataSource = self;
    [graph addPlot:xSquaredPlot];

    CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol];
    greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
    greenCirclePlotSymbol.size = CGSizeMake(2.0, 2.0);
    xSquaredPlot.defaultPlotSymbol = greenCirclePlotSymbol;  

    CPScatterPlot *xInversePlot = [[[CPScatterPlot alloc]
                                    initWithFrame:graph.defaultPlotSpace.bounds] autorelease];
    xInversePlot.identifier = @"X Inverse Plot";
    xInversePlot.dataLineStyle.lineWidth = 1.0f;
    xInversePlot.dataLineStyle.lineColor = [CPColor blueColor];
    xInversePlot.dataSource = self;
    [graph addPlot:xInversePlot];
}
Это было полезно?

Решение

Пример, на который вы указываете, устарел и больше не соответствует текущему API для основной структуры сюжета. Я бы посоветовал начать с образцов приложений, которые поставляются с структурой (в каталоге примеров), так как мы сохранили обновленные в соответствии с любыми изменениями API.

Например axisLabelOffset был переименован в labelOffset, defaultPlotSymbol больше не существует (вы устанавливаете plotSymbol свойство в экземпляре CPPLOT), в сюжете больше не есть bounds свойство, и вам больше не нужно использовать -initWithFrame: Для экземпляров CPPLOT.

Опять же, просто используйте образцы приложений, которые поставляются с структурой в качестве шаблона, и оттуда работайте. Мы еще не достигли выпуска 1.0, поэтому API изменится, когда мы стабилизируем и улучшаем структуру.

Другие советы

вы получаете ошибку несовместимой типа, потому что MajorInterVallength ожидает NSDecimal и вы возвращаетесь NSDecimalNumber. Анкет Посмотрите, работает ли это для этих ошибок:

axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"] decimalValue];

Для остальных вы где -то включаете файлы заголовков?

set the header search and other link (Users..../framework & -ObjC respectively) 

Я думаю, вы предоставляете абсолютный путь. Если вы пройдете через документацию CorePlot, вы увидите, что они четко упомянули: «Вы должны дать относительный путь в поле« Путь поиска заголовка »

Чтобы узнать, что такое относительный путь, следует », -http://webdesign.about.com/od/beginningtutorials/a/aa040502a.htm"

Получите полный путь ядра через команду терминала «mdfind», как показано ниже.

В типе терминала MDFIND -NAME COREPLOT

Получит полное имя пути.

Пройдите в полный путь и вставьте в путь поиска заголовков

Наряду с вышеупомянутым ... добавить -от -objc в «othetr Linker Flags» и добавить Quartz Frame Work в "Link Binary с библиотеками"

Это будет работать :)

Я сделал следующее:

1) Добавлен #Import "Coreplot-cocoatouch.h" 2) добавлен: UiviewController в файл .h VC 3) добавил тот же код из приложения CPTes Настройки целей, установите поиск заголовка и другую ссылку (пользователи ..../Framework & -OBJC соответственно) в настройках проекта, добавлены картцкор -фреймворки, и когда я собираю, я получаю:

Импорт "CorePlot-cocoatouch.h" нет такого файла или каталога ....

Я не понимаю, почему это не нахождение файлов заголовков ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top