我有一个用于蓝牙数据接收的类,我想知道将接收数据发送到类UIViewController并进行实时绘图(CorePlot)
class BluetoothManager: NSObject {
func dataReceiving(value: [Int]){
MainController().plot(dataOne: [Int], dataTwo: [Int])
}
MainController类:
class MainController: UIViewController,CPTScatterPlotDataSource {
@IBOutlet weak var graphView: CPTGraphHostingView!
func plot(dataOne: [Int], dataTwo: [Int]){
let newGraph = CPTXYGraph(frame: CGRectZero)
graphView.hostedGraph = newGraph
}
}
当程序进入graphView.hostedGraph = newGraph
时,会出现致命错误:
意外地发现nil
有人能告诉我如何解决这个问题吗? 我知道可能发生了错误,因为我创建了MainController的新实例 但我对iOS开发很新,所以我真的需要知道修复它的详细程序...... 十分感谢!!!!!!!我非常感激
我在这里上传我的项目:https://www.dropbox.com/sh/xyghqhyxyy9lm1f/AACfV8JUj7C2Lo3MNcOiGfnIa?dl=0 你能帮助我解决这个问题吗?我真的需要知道......
答案 0 :(得分:0)
graphView
出口由于参考不足而提前释放。声明如下:
@IBOutlet var graphView: CPTGraphHostingView!
编辑:
我刚注意到另一个问题。第MainController().plot(dataOne: [Int], dataTwo: [Int])
行创建了一个新的MainController
对象,该对象没有对图表视图的引用。您需要获取对现有视图控制器的引用,并在其上调用plot
函数。