2015-10-11 55 views
0

任何人都知道在Swift中使用NSNib实例化视图的正确方法?无法使用NSNib加载视图

下面的代码崩溃了。

import Cocoa 
class ViewController: NSViewController { 
    var myview:NSView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     let obj = AutoreleasingUnsafeMutablePointer<NSArray?>() 
     if let success = NSNib(nibNamed: "View", bundle: NSBundle.mainBundle())?.instantiateWithOwner(self, topLevelObjects: obj) where success { 
      if let m = obj.memory { // fatal error: 
       myview = m[0] as! NSView 
      } 
     } 
    } 
} 

回答

0

您所看到的fatal error,因为你要访问的值是零,你用力试图解开可选。你应该安全地打开选项,这是他们的意思。因此,当您尝试访问optionals时总是使用if语句,那么您将不会收到此错误。

+0

你真的尝试过吗?它不像你期望的那样工作。这不是可选的问题。即使你使用'if let',它也会发生致命错误。 – toshi0383

+0

编辑为安全地展开可选。 – toshi0383

+0

你能告诉我什么是错误,我的意思是显示你的完整错误,到底会发生什么? –