Objective c 无法将操作:连接到类NSApplication的目标

Objective c 无法将操作:连接到类NSApplication的目标,objective-c,cocoa,Objective C,Cocoa,我一直收到无法将操作startServer:连接到类NSApplication的目标上编译时出错。我知道错误是什么,但不知道如何修复它。不知何故,我的xib试图在不存在的NSApplication中调用startServer方法 您已经在主nib中与文件所有者建立了连接,您可能打算连接到其他内容。您在中实现了什么类?听起来好像您将UI元素连接到了文件的所有者对象,该对象是NSApplication的一个实例 如果您还没有这样做,您需要将NSObject从Xcode 4中的对象库调色板拖到布局左侧

我一直收到
无法将操作startServer:连接到类NSApplication的目标上编译时出错。我知道错误是什么,但不知道如何修复它。不知何故,我的xib试图在不存在的NSApplication中调用startServer方法

您已经在主nib中与文件所有者建立了连接,您可能打算连接到其他内容。您在中实现了什么类?

听起来好像您将UI元素连接到了文件的所有者对象,该对象是NSApplication的一个实例

如果您还没有这样做,您需要将NSObject从Xcode 4中的对象库调色板拖到布局左侧的空白处。完成此操作并选择它后,选择identity inspector,然后在类字段中输入“WindowController”

现在您已经获得了WindowController的表示,正如您所说的,它包含startServer:,然后您可以将UI元素连接到它。确保startServer方法的格式为:

- (IBAction)startServer:(id)sender
否则你将无法建立连接


祝你在努力中好运。

我也遇到了同样的问题,但最终得到了解决。我不确定这是否适用于您,但请尝试以下方法:

(关于界面生成器)

从库中将NSObject拖动到“您的XIB文档”窗口。 通过将已连接到NSObject的对象断开与文件所有者的连接。 将NSObject重命名为适合的NSObject。 突出显示NSObject,转到Inspector。 在“类标识”下,搜索刚刚重命名的NSObject的名称。 救命


看看它是否适合你!它现在让我的工作!祝你好运

您可以通过两种简单的方法解决此问题:

  • [[YourWindowController alloc]initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER]
    此处不使用所有者创建。因此,
    n应用程序
    将不是所有者

  • [[YourWindowController alloc]init]
    YourWindowController.m
    file override init方法中,调用
    self=[super initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER]

  • 1或2将解决此问题


    快乐编码…

    startServer在我的WindowController中。mPerfect。。。我不知道我错过了这个。这为我解决了这个问题。我遗漏了(id)发送者,并将其添加到修复中。在iOS中,方法中是否没有参数并不重要;为什么它在可可中很重要?谢谢。向上投票。我不明白为什么OSX与使用NSObject的iOS开发如此不同?