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
Objective c NSWindowController初始化警告_Objective C_Cocoa_Nswindow_Nswindowcontroller_Designated Initializer - Fatal编程技术网

Objective c NSWindowController初始化警告

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文件,其中包含与项目一起创建的主文档窗

我正在开发一个基于文档的应用程序。我正在为文档窗口使用专用的窗口控制器,并调用-[NSDocument MakeWindowController]方法

我的窗口控制器初始化如下:

- (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中使用它,看看是什么让它快乐,所以请务必自己回答这个问题。