如何在Swift中实例化NSViewController?

Tea*_*abs 5 xcode objective-c nsviewcontroller ios swift

我目前的Swift代码

         var appBundle = NSBundle.mainBundle()
         let controller: ViewController = ViewController.init(nibName:        "ViewController", bundle: nil)
    self.window.contentView.addSubview(controller.view)
    controller.view.frame = self.window.contentView.bounds
Run Code Online (Sandbox Code Playgroud)

得到两个错误.一个是"类型名称后的预期成员名称或构造函数调用",另一个是"()不能转换为'ViewController'.作为参考,ViewController是一个继承自NSViewController的类.

这两个错误都发生在第二行代码上.提前致谢.

dre*_*wag 8

在swift中,您不会调用init类来实例化它们.你省略了init,只需将参数放在类型名称后面:

let controller = ViewController(nibName: "ViewController", bundle: NSBundle.mainBundle())
Run Code Online (Sandbox Code Playgroud)

或者,您不需要提供nibName它是否与类的名称匹配:

let controller = ViewController()
Run Code Online (Sandbox Code Playgroud)

  • 你必须将NSBundle.mainBundle()作为bundle传递.文档说nil没问题,但是如果您尝试将nil作为bundle传递,则会收到错误消息. (2认同)