2015-05-20 22 views
0

我無法獲得散點圖顯示。我在Xcode 6.3上使用核心繪圖1.6和以下this tutorial.Core Plot中expandRangeByFactor方法的錯誤

我已經按照教程'到T'和餅圖工作,但移動到散點圖時,我得到這樣的線路上的錯誤...

[xRange expandRangeByFactor:CPTDecimalFromCGFloat(1.1f)]; 

它說:「發送「NSDecimal不兼容類型的參數‘的NSNumber *’。所以,我本能地改變行這個......

[xRange expandRangeByFactor:[NSNumber numberWithFloat:1.1f]]; 

而且根據this post by eskroch of Core Plot.

我將Swift更新推送到release-2.0分支。我將所有外部可見的方法和屬性的類型從NSDecimal更改爲NSNumber和/或使用新類型對其進行補充。我更新了所有示例應用程序以使用新API,並將其中的兩個(DatePlot和iPhone版本的CPTTestApp)翻譯爲Swift。他們編譯,但我現在無法測試它們,所以請報告任何問題。

所以我應該是正確的使其成爲一個NSNumber的。

然後它編譯,但屏幕是空白的。我不知道發生了什麼......我認爲開發人員改變了CPTDecimalFromCGFloat方法或某事,但現在我不知所措。 有沒有人有一個快速的想法,它可能是什麼?我是否正確地將此編號設爲NSNumber而不是CPTDecimal?

而下面是其中發生問題的整個方法。

-(void) configurePlots { 
    // 1 - Get graph and plot space 
    CPTGraph *graph = self.hostView.hostedGraph; 
    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace; 
    // 2 - Create the three plots 
    CPTScatterPlot *aaplPlot = [[CPTScatterPlot alloc] init]; 
    aaplPlot.dataSource = self; 
    aaplPlot.identifier = CPDTickerSymbolAAPL; 
    CPTColor *aaplColor = [CPTColor redColor]; 
    [graph addPlot:aaplPlot toPlotSpace:plotSpace]; 
    CPTScatterPlot *googPlot = [[CPTScatterPlot alloc] init]; 
    googPlot.dataSource = self; 
    googPlot.identifier = CPDTickerSymbolGOOG; 
    CPTColor *googColor = [CPTColor greenColor]; 
    [graph addPlot:googPlot toPlotSpace:plotSpace]; 
    CPTScatterPlot *msftPlot = [[CPTScatterPlot alloc] init]; 
    msftPlot.dataSource = self; 
    msftPlot.identifier = CPDTickerSymbolMSFT; 
    CPTColor *msftColor = [CPTColor blueColor]; 
    [graph addPlot:msftPlot toPlotSpace:plotSpace]; 
    // 3 - Set up plot space 
    [plotSpace scaleToFitPlots:[NSArray arrayWithObjects:aaplPlot, googPlot, msftPlot, nil]]; 
    CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy]; 
    [xRange expandRangeByFactor:CPTDecimalFromCGFloat(1.1f)]; // error here 
    plotSpace.xRange = xRange; 
    CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy]; 
    [yRange expandRangeByFactor:CPTDecimalFromCGFloat(1.2f)]; // error here 
    plotSpace.yRange = yRange; 
    // 4 - Create styles and symbols 
    CPTMutableLineStyle *aaplLineStyle = [aaplPlot.dataLineStyle mutableCopy]; 
    aaplLineStyle.lineWidth = 2.5; 
    aaplLineStyle.lineColor = aaplColor; 
    aaplPlot.dataLineStyle = aaplLineStyle; 
    CPTMutableLineStyle *aaplSymbolLineStyle = [CPTMutableLineStyle lineStyle]; 
    aaplSymbolLineStyle.lineColor = aaplColor; 
    CPTPlotSymbol *aaplSymbol = [CPTPlotSymbol ellipsePlotSymbol]; 
    aaplSymbol.fill = [CPTFill fillWithColor:aaplColor]; 
    aaplSymbol.lineStyle = aaplSymbolLineStyle; 
    aaplSymbol.size = CGSizeMake(6.0f, 6.0f); 
    aaplPlot.plotSymbol = aaplSymbol; 
    CPTMutableLineStyle *googLineStyle = [googPlot.dataLineStyle mutableCopy]; 
    googLineStyle.lineWidth = 1.0; 
    googLineStyle.lineColor = googColor; 
    googPlot.dataLineStyle = googLineStyle; 
    CPTMutableLineStyle *googSymbolLineStyle = [CPTMutableLineStyle lineStyle]; 
    googSymbolLineStyle.lineColor = googColor; 
    CPTPlotSymbol *googSymbol = [CPTPlotSymbol starPlotSymbol]; 
    googSymbol.fill = [CPTFill fillWithColor:googColor]; 
    googSymbol.lineStyle = googSymbolLineStyle; 
    googSymbol.size = CGSizeMake(6.0f, 6.0f); 
    googPlot.plotSymbol = googSymbol; 
    CPTMutableLineStyle *msftLineStyle = [msftPlot.dataLineStyle mutableCopy]; 
    msftLineStyle.lineWidth = 2.0; 
    msftLineStyle.lineColor = msftColor; 
    msftPlot.dataLineStyle = msftLineStyle; 
    CPTMutableLineStyle *msftSymbolLineStyle = [CPTMutableLineStyle lineStyle]; 
    msftSymbolLineStyle.lineColor = msftColor; 
    CPTPlotSymbol *msftSymbol = [CPTPlotSymbol diamondPlotSymbol]; 
    msftSymbol.fill = [CPTFill fillWithColor:msftColor]; 
    msftSymbol.lineStyle = msftSymbolLineStyle; 
    msftSymbol.size = CGSizeMake(6.0f, 6.0f); 
    msftPlot.plotSymbol = msftSymbol; 
} 

回答

1

它看起來像2.0包頭包含在1.6包中。我將不得不做一個1.6.1版本來解決它。