Вопрос

Я только что добавил представление основного графика в свое приложение на основе руководства (http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application).Я поместил код рисования основного графика в метод windowDidLoad оконного контроллера для окна, в которое я включил CPLayerHostingView.Код сюжета:

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"] decimalValue];  
axisSet.xAxis.minorTicksPerInterval = 4;
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"] decimalValue];  
axisSet.yAxis.minorTicksPerInterval = 4;
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];

При сборке получаю следующие ошибки:

".objc_class_name_CPPlotRange", ссылка на:literal-pointer@__OBJC@__cls_refs@CPPlotRange в HistogramWindowController.o

"_CPDecimalFromFloat", ссылка на:-[HistogramWindowController windowDidLoad] in HistogramWindowController.o -[HistogramWindowController windowDidLoad] in HistogramWindowController.o -[HistogramWindowController windowDidLoad] in HistogramWindowController.o -[HistogramWindowController windowDidLoad] in HistogramWindowController.o

".objc_class_name_CPLineStyle", ссылка на:literal-pointer@__OBJC@__cls_refs@CPLineStyle в HistogramWindowController.o

".objc_class_name_CPXYGraph", ссылка на который:literal-pointer@__OBJC@__cls_refs@CPXYGraph в HistogramWindowController.o

".objc_class_name_CPScatterPlot", ссылка на:literal-pointer@__OBJC@__cls_refs@CPScatterPlot в HistogramWindowController.o

".objc_class_name_CPPlotSymbol", ссылка на:literal-pointer@__OBJC@__cls_refs@CPPlotSymbol в HistogramWindowController.o

".objc_class_name_CPColor", ссылка на:literal-pointer@__OBJC@__cls_refs@CPColor в HistogramWindowController.o

".objc_class_name_CPFill", ссылка на который:literal-pointer@__OBJC@__cls_refs@CPFill в HistogramWindowController.o

лд:Символ (ы) не найдено collect2:ld вернул 1 статус выхода

Я никогда не сталкивался с такой ошибкой.Может ли кто-нибудь пролить свет на то, в чем может быть проблема?

Ваше здоровье

Это было полезно?

Решение

Это означает, что вы не связаны в рамках правильно. Вы, вероятно, только что добавили структуру в свой проект, #importЭд заголовок, но забыл убедиться, что фреймворк фактически связана с вашей целью.

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

Есть несколько инструкций по эта страница вики для включения структуры в проекты Mac. Если вы следите за этим, вы сможете избежать каких -либо проблем с связыванием в рамках.

Я испытал те же ошибки ссылки. Для меня проблема заключалась в том, что я пытался запустить свое приложение в симуляторе. Я не знаю, если я что -то пропустил, но я мог бы запустить только на устройстве. Как только я начал это делать, никаких ошибок ссылок.

Вы также можете проверить, настроена ли цель вашего приложения на включение 64-разрядной поддержки и имеет ли платформа такую ​​поддержку (используйте файл(1) команда для последней части).Если вы создаете свое приложение с поддержкой 64-разрядной версии, но пытаетесь связать ее с платформой, которая не имеет поддержки 64-разрядной версии, компоновщик выдаст подобные ошибки, когда попытается связать 64-разрядную часть вашего приложения. , а 32-битные части будут успешными.

Убедитесь, что вы также добавите каркас Quarzcore. Это исправило мои ошибки связывания.

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