Swift NSViewController.init(nibName:bundle:)
重写NSViewController.init(nibName…)可以在空项目中被重写,但不能在我的大项目中被重写!我的项目如何影响这一点Swift NSViewController.init(nibName:bundle:),swift,nsviewcontroller,Swift,Nsviewcontroller,重写NSViewController.init(nibName…)可以在空项目中被重写,但不能在我的大项目中被重写!我的项目如何影响这一点 设置:我将以下内容添加到一个空项目中,它可以很好地编译: class FooNsVc : NSViewController override init(nibName nibNameOrNil:NSNib.Name?, bundle nibBundleOrNil:Bundle?) { super.init(nibName:nibNameOrNil,
class FooNsVc : NSViewController
override init(nibName nibNameOrNil:NSNib.Name?, bundle nibBundleOrNil:Bundle?) {
super.init(nibName:nibNameOrNil, bundle:nibBundleOrNil)
loadView()
}
}
初始值设定项不会覆盖其超类中指定的初始值设定项
为什么。我已删除NSViewController及其超类NSResponder和NSObject的所有扩展。同样的症状
init(nibName nibNameOrNil:NSNib.Name?, bundle nibBundleOrNil:Bundle?) {
super.init(nibName:nibNameOrNil, bundle:nibBundleOrNil)
loadView()
和中的错误无法加载nibName:在捆绑包中(null)
atominstit.xib存在,它显示在Assets/xib/atominstit.xib中,从工作的OBJC项目复制到那里
我又做了一次,错误又溜走了。你如何实例化
FooNsVc
?FooNsVc
是否依赖于atominstit.xib
?实际上,FooNsVc根本没有实例化!编译问题发生在定义它时。此外,我只是将xib包含在“空”项目中,并实例化了FooNsVc()(在ApplicationIDFinishLaunching中)。它执行时没有错误(尽管我对生成的FooNsVc不做任何处理)。您显示的第一个代码没有编译,因为它缺少一个大括号。但是如果我们把大括号放进去,那么只要您还实现了init(coder:)
,您的代码就可以编译。因此,不可能根据您所说的重现问题。是的,需要“{”字符。谢谢。(它在将内容粘贴到堆栈溢出中时丢失了。(那里没有emacs键绑定))