Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用Swift从Nib创建视图控制器_Macos_Cocoa_Swift - Fatal编程技术网

Macos 使用Swift从Nib创建视图控制器

Macos 使用Swift从Nib创建视图控制器,macos,cocoa,swift,Macos,Cocoa,Swift,我正在尝试遵循本教程: 但要用迅捷的方式 尝试执行“创建主视图控制器”步骤我有以下代码: import Cocoa class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var window: NSWindow @IBOutlet var vc: MasterViewController? func applicationDidFinishLaunching(aNotification

我正在尝试遵循本教程:

但要用迅捷的方式

尝试执行“创建主视图控制器”步骤我有以下代码:

    import Cocoa

class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet var window: NSWindow
    @IBOutlet var vc: MasterViewController?

    func applicationDidFinishLaunching(aNotification: NSNotification?) {
        vc = MasterViewController(nibName: "MasterViewController", bundle: nil)
    }

    func applicationWillTerminate(aNotification: NSNotification?) {
        // Insert code here to tear down your application
    }


}
但是,在MasterViewController实例化中,我得到了错误: 找不到接受提供的参数的“\uuu转换”的重载


我做错了什么?

我认为这是一个bug,因为文档中说bundle可以为零,但在swift中它是不允许的,抛出了那个错误

但是您可以将NSBundle.mainBundle()作为bundle传递,并且它可以工作

引用NSViewController文档:

要在其中搜索nib文件的包。如果指定nil,此方法将在主捆绑包中查找nib文件


这是由于一个bug xcode为Swift自动生成了初始化器

由于捆绑包可以为零,NSViewController的init的正确签名为:

init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)
但是,当您创建新的NSViewController子类时,xcode会为您创建一个init方法,并为其提供以下签名:

init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle)
注意到失踪的人了吗?在NSBundle之后。这意味着您不能指定nil NSBundle


幸运的是,这只是代码自动生成器中的一个bug。您可以将NSBundle更改为NSBundle?或者,如果不使用init方法,您可以直接删除它。

谢谢-它现在可以编译,但视图控制器不加载。我检查可选结果,结果为零。也许是另一个bug?谢谢,但是视图控制器仍然没有加载。你有OSX下的工作示例项目吗?