【问题标题】:Swift NSViewController斯威夫特 NSViewController
【发布时间】:2014-09-14 14:24:15
【问题描述】:

我是 cococa 和 swift 的新手,我正在尝试创建一个自定义 ViewController。

class StatusUpdate : NSViewController {

  @IBOutlet var StatusView: NSView!
  @IBOutlet var eventsFoundCell: NSTextFieldCell!

  @IBAction func update(sender: AnyObject) {
      StatusView.hidden = false
      eventsFoundCell.stringValue = "A"
  }
}

如上所示的代码按照您的预期工作。 但我想做的是向该类添加另一个函数,例如:

  func otherUpdate() {  
    eventsFoundCell.stringValue = "B"
  }

为了更新eventsFoundCell 变量的stringValue。 所以我可以在其他类中调用它:

var update = StatusUpdate()
update.otherUpadte()

当在其他类中调用update.otherUpadte() 时,

我总是收到如下错误:

Thread1: EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP, subcode=0x0)

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

有什么想法我可以做到吗?

谢谢!

【问题讨论】:

    标签: macos swift xcode6 nsviewcontroller


    【解决方案1】:

    因为在这一行

     var update = StatusUpdate()
    

    您正在创建StatusUpdate 的新实例。变量StatusView 未绑定到任何 NSView

    【讨论】:

      【解决方案2】:

      您已经得到答案,所以这只是建议。如果您遵循完善的惯例,它将使您的 Cocoa 生活更轻松。所以,而不是:

      @IBOutlet var StatusView: NSView!
      

      你应该写

      @IBOutlet var statusView: NSView!
      

      在 Cocoa 中有很多情况下,为了使框架能够正常工作,假设了适当的大写(和一般风格)。

      【讨论】:

        猜你喜欢
        • 2017-07-22
        • 2017-03-24
        • 1970-01-01
        • 2016-02-08
        • 2017-11-13
        • 2015-08-19
        • 2014-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多