2014-09-29 53 views
2

我'試圖在斯威夫特應用 使用顎骨/ JBChartView圖表在我的ViewController我:斯威夫特 - 目標C - 「控制器」不符合協議JBBarChartViewDelegate

class ViewController: UIViewController , JBBarChartViewDelegate { 
... 
} 

我已經實現方法符合的協議:

override func heightForBarViewAtIndex (bc: JBBarChartView , index: Int) -> Double{ 
    //return 1; 
} 

的JBarChartViewDelegate是一個的ObjectiveC類所以執行原的方法是:

- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index; 

我無法編譯代碼我得到一個「ViewController不符合協議JBBarChartViewDelegate」

我做錯了什麼?

在此先感謝。

+0

嘗試從基金面前取消覆蓋。 – 2014-09-29 21:04:26

+0

不,這不是問題 – TinGinard 2014-09-30 06:02:59

+0

您是否實現了協議的所有非可選方法? 另請檢查橋接報頭以確定協議方法的確切簽名。 – JohnVanDijk 2014-09-30 06:25:58

回答

2

最後的問題是int型參數,它必須是UINT。所以實施的最終方法是:

func barChartView(barChartView: JBBarChartView!, heightForBarViewAtIndex index: UInt) -> CGFloat{ 
    return 0.0 
} 

Thsnks給你所有。

0

看起來你的問題可能是你使用了錯誤的類型。當聲明指定CGFloat時,您的返回值似乎在您的覆蓋函數中返回Double。同樣,我相信函數應該以聲明的方法所用的相同單詞開始。你寫下heightForBarViewAtIndex(當我相信它會轉化爲下面的樣子。

試試這個:

override func barChartView(barChartView: JBBarChartView, heightForBarViewAtIndex index: UInt) -> CGFloat { 
    return 0.0 
} 
+0

我改變了一下你的代碼,並沒有工作,func barChartView(barChartView:JBBarChartView !, heightForBarViewAtIndex index:Int) - > CGFloat { return 0.0 } – TinGinard 2014-09-30 06:19:44

相關問題