ios - 在 Swift 中调用不同类中的函数( fatal error )?

标签 ios swift core-plot

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

class BluetoothManager: NSObject {
   func dataReceiving(value: [Int]){
      for (var m=0 ; m<5 ; m++){
         dataOne[m] = value[2*m]
         dataTwo[m] = value[2*m+1] 
      }
   MainController().plot(dataOne: [Int], dataTwo: [Int])
}

主 Controller 类:

class MainController: UIViewController,CPTScatterPlotDataSource {

    @IBOutlet weak var graphView: CPTGraphHostingView!

    private var scatterGraph : CPTXYGraph? = nil
    typealias plotDataType = [CPTScatterPlotField : Double]
    private var dataForPlot = [plotDataType]()

    func plot(dataOne: [Int], dataTwo: [Int]){
        let newGraph = CPTXYGraph(frame: CGRectZero)
        graphView.hostedGraph = newGraph
        ...
    }
}

程序执行到graphView.hostedGraph = newGraph 时,会出现 fatal error :

unexpectedly found nil while unwrapping an Optional value

我试过在 MainController 类中调用 plot 函数,成功了!

谁能帮我解决这个问题? 谢谢!

最佳答案

您正在行中创建 MainController 的新实例

MainController().plot(dataOne: [Int], dataTwo: [Int])

因此 @IBOutlet weak var graphView: CPTGraphHostingView!nil - 因此你的代码崩溃了。

不得按照您当前的方式创建MainController 的新实例 - 通过 Storyboard实例化它,或传入正确的 nib 文件。对于这两种情况,您都必须将 MainController 设置为 IB 中的 Controller 类并连接 socket 。

关于ios - 在 Swift 中调用不同类中的函数( fatal error )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799854/

相关文章:

ios - 如何在 Swift 中将 cornerRadius 添加到 AVPlayerViewController?

ios - 将 UIStackView 与具有动态高度的 UITextView 结合使用

ios - 使用 iPhone 核心图,在 x 轴上绘制日期

macos - CorePlot 滚动实时绘图

iphone - arc 的核心图内存消耗问题

ios - 表格 View 、手册和设置尽在一个屏幕中 : Best practice?

ios - 代码签名资源规则路径在 Jenkins 上失败,CODE_SIGN_RESOURCE_RULES_PATH

ios - Facebook cocoapods 'sharedApplication' 不可用 : not available on iOS (App Extension)

ios - 如何在 Swift 3 中使用 NSSecureCoding 解码字符串?

xcode - 如何在 Swift 中弯曲 UIViewController 的顶部?