2017-07-28 36 views
1

我有以下代码,但我面临一些问题,可能与'open'关键字有关。迅速 - 扩展PieChartView

class CustomPieChartView: PieChartView 
{ 


    internal override func initialize() 
    { 
     super.initialize() 

     renderer = PieChartRenderer(chart: self, animator: _animator, viewPortHandler: _viewPortHandler) 
     _xAxis = nil 

     self.highlighter = PieHighlighter(chart: self) 
    } 


} 

enter image description here

+1

你不能覆盖框架的内部功能 –

回答

1

initialize在里面PieChartView

标记internal按照Swift documentation你不能访问框架internal成员(他们必须注明open)。

内部访问使得能够从他们的定义模块任何源文件 内使用的实体,但不是在 模块之外的任何源文件。定义应用程序或框架的内部结构时,通常使用内部访问。

...

打开类成员可以通过子类他们定义成模块 内被覆盖,并且进口他们定义成模块 任何模块内。

Charts维护者(S)可能不希望重写这个方法,但因为它是开源也许你/有人可以尝试有改变,如果有一个很好的理由,或使用情况。