2017-09-03 33 views
0

我试图创建从Charts framework图表LineChartView框架得到:致命错误:意外发现零而展开的可选值

我有成功的一个简单的线型图(至少我觉得我做了正确的)使用迦太基将二进制文件链接到我的XCode项目,以便我可以使用图表库。

我在故事板创建一个UIView并设置类和模块以适当的值: enter image description here

我创建在适当UIViewController类的出口:

@IBOutlet weak var lineChartView: LineChartView! 

我添加委托给类:

class LineChartViewController: UIViewController, ChartViewDelegate { 

在viewDidLoad中()函数我试图设置委托:

lineChartView.delegate = self 

***这是创建“致命错误” 这是因为如果所述出口设置不正确,或类/模块设置不正确的行。

如果我检查连接检查时,引用出口显示为连接: enter image description here

我难倒的问题可能是什么,所以任何帮助,将不胜感激! 谢谢

+0

您是否检查过类似的线程并尝试提供的解决方案?例如https://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found-nil-while-unwrapping-an-optional-valu – 2017-09-03 19:44:49

+0

是的,我已经经历了许多不同的线程看着。我明白错误提示 - lineChartView变量在某种程度上为零,尽管我可以看到所有的连接/插口,并且它们都已正确完成。我不明白的是一旦LineChartViewController被创建,值就不会被赋值。 –

+0

您应该处理异常作为我链接的线程以避免在nil上崩溃。并检查这里也许可以帮助你的问题的其余部分(?)https://stackoverflow.com/questions/29321383/iboutlet-is-nil-but-it-is-connected-in-storyboard-swift,我不' t代码在Swift中,但是这个问题在很多时候会弹出来,所以如果它没有解决它,希望别人能够给你正确的方向。 GL – 2017-09-03 20:11:30

回答

0

我从来没有发现一个理由,为什么在故事板上的对象无法访问“图表”模块。 因此,如果其他人快到了同样的问题,我做了什么来纠正,这是通过编程建立LineChartView。我没有任何问题从适当的类实例化并构建折线图。

lineChartView = LineChartView(frame: CGRect(x: 0, y: 0, width: (view?.frame.width)!, height: (view?.frame.height)!)) 
    lineChartView?.delegate = self 
    self.view.addSubview(lineChartView!) 

我也建议考虑看看文档和例子在这里:

https://github.com/danielgindi/Charts

是一些例子还用Objective-C,但解决方案一般是很容易的工作通过转换为Swift。

我也建议考虑看看MPAndroidChart这也正是图表是基于。还有更多的文档和例子可以在网上找到,以指导您正确的方向。

https://github.com/PhilJay/MPAndroidChart

0

你不正确的方式设置委托。请通过以下链接,这将有助于您理解并设置合适的代表。

Examples of Delegates in Swift 3

+0

我了解Swift 3中的代表是什么。为什么你认为我'以不正确的方式设置代理人?我经历了几个不同的教程,每个教程都建议按照上面的方式设置代理。 –

+0

我也在使用这个框架。如果你可以分享你的完整代码,那么我可以看到。 – Priya

+0

lineChartView.delegate = self之后的代码都不重要,因为那是崩溃的地方(在ViewDidLoad方法中)。如果我以编程方式制作lineChartView,那么它工作正常(包括委托) –

相关问题