从不同 Class 分配出口? (核心剧情)

Assigning the Outlet from Different Class? (Core Plot)

我有一个 class 用于蓝牙数据接收,我想将接收数据发送到 class UIViewController 并进行实时绘图 (CorePlot)

class BluetoothManager: NSObject {
   func dataReceiving(value: [Int]){
      MainController().plot(dataOne: [Int], dataTwo: [Int])
}

主控制器class:

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 你们能帮我解决这个问题吗?我真的需要知道......

graphView outlet 因引用较弱而提前发布。像这样声明:

@IBOutlet var graphView: CPTGraphHostingView!

编辑:

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