Objective c NSWindowController初始化警告
我正在开发一个基于文档的应用程序。我正在为文档窗口使用专用的窗口控制器,并调用-[NSDocument MakeWindowController]方法 我的窗口控制器初始化如下:Objective c NSWindowController初始化警告,objective-c,cocoa,nswindow,nswindowcontroller,designated-initializer,Objective C,Cocoa,Nswindow,Nswindowcontroller,Designated Initializer,我正在开发一个基于文档的应用程序。我正在为文档窗口使用专用的窗口控制器,并调用-[NSDocument MakeWindowController]方法 我的窗口控制器初始化如下: - (instancetype) init { if (self = [super initWithWindowNibName:@"Document" owner:self]) { } return self; } 在这里,@Document是.xib文件,其中包含与项目一起创建的主文档窗
- (instancetype) init
{
if (self = [super initWithWindowNibName:@"Document" owner:self]) {
}
return self;
}
在这里,@Document是.xib文件,其中包含与项目一起创建的主文档窗口
这里的基本原理是,此窗口控制器总是使用这种类型的窗口初始化,因此参数是硬编码的,并且隐藏在-init的实现中,同时还方便地将窗口所有者设置为self
因此,在我的例子中,实例化窗口控制器的那一方,document类不需要担心使用哪个nib,只需调用-init即可
问题是,我正在破坏指定的初始值设定项链,Xcode发出以下警告:
的指定初始值设定项的语义问题方法重写
未找到超类“-initWithCoder:”
语义问题指定的初始值设定项缺少对
超类的指定初始值设定项
的指定初始值设定项的语义问题方法重写
未找到超类“-initWithWindow:”
语义问题指定的初始值设定项调用了非指定的
初始化器
我会将调用切换到-initWithWindowNibName:owner:一个切换到-initWithWindow:然后手动设置所有者,我想是吧?;但我不知道如何直接从nib创建NSWindow,或者这是否是正确的做法
编辑:我刚刚发现触发警告只是因为我在界面中将-init标记为NS_指定的_初始值设定项。我可以删除该标签,警告也会消失,但是-init是我事实上指定的初始值设定项,所以我宁愿保留它。您通读了吗?没有;我现在就来。谢谢。我做了,但我不能把它翻译成一个简洁的答案。您需要在XCode中使用它,看看是什么让它快乐,所以请务必自己回答这个问题。