从不同的班级分配出口? (核心情节)

时间:2015-11-22 07:53:25

标签: xcode class core-plot fatal-error iboutlet

我有一个用于蓝牙数据接收的类,我想知道将接收数据发送到类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 你能帮助我解决这个问题吗?我真的需要知道......

1 个答案:

答案 0 :(得分:0)

graphView出口由于参考不足而提前释放。声明如下:

@IBOutlet var graphView: CPTGraphHostingView!

编辑:

我刚注意到另一个问题。第MainController().plot(dataOne: [Int], dataTwo: [Int])行创建了一个新的MainController对象,该对象没有对图表视图的引用。您需要获取对现有视图控制器的引用,并在其上调用plot函数。