从不同 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
函数。
我有一个 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
函数。