Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 (NSMenuItem):缺少setter或实例变量_Macos_Swift - Fatal编程技术网

Macos (NSMenuItem):缺少setter或实例变量

Macos (NSMenuItem):缺少setter或实例变量,macos,swift,Macos,Swift,我遇到了一个奇怪的错误: 2015-04-02 12:20:14.642 test[21167:257788] Failed to connect (testApp) outlet from (test.AppDelegate) to (NSMenuItem): missing setter or instance variable inserted id: 122 当一个用户向菜单添加了一个菜单项并将一个函数连接到该菜单时,发生了这种情况 我不知道是什么问题。该应用程序运行良好,

我遇到了一个奇怪的错误:

2015-04-02 12:20:14.642 test[21167:257788] Failed to connect     
(testApp) outlet from (test.AppDelegate) to (NSMenuItem): missing 
setter or instance variable
inserted id: 122
当一个用户向菜单添加了一个菜单项并将一个函数连接到该菜单时,发生了这种情况

我不知道是什么问题。该应用程序运行良好,但我不认为忽视错误是一个明智的想法。 setter或实例变量是什么意思?为什么需要它

更新:以下是相关代码:

import Cocoa
import Foundation

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var window: NSWindow!
@IBOutlet weak var statusMenu: NSMenu!

let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)

func applicationDidFinishLaunching(aNotification: NSNotification) {
    let icon = NSImage(named: "statusIcon")

    statusItem.image = icon
    statusItem.menu = statusMenu
    // Time for constant repeat
    NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timerRepeat", userInfo: nil, repeats: true)
}

// Method to call the tracking core
func timerRepeat() {
    //....
}

@IBAction func frontEnd(sender: NSMenuItem) {
    var targetURL : String = NSBundle.mainBundle().resourcePath!
    targetURL = targetURL + "/" + "front.app"
    let workspace = NSWorkspace()
    workspace.launchApplication(targetURL)
}


@IBAction func menuClicked(sender: NSMenuItem) {
    NSApplication.sharedApplication().terminate(self)
}   
}

您的xib文件中有一个断开的插座。通常,当您设置ivar或属性的出口时会发生这种情况,这些出口或属性后来会被删除或重命名,而不使用Xcode的重命名功能。

还要确保将自定义视图或视图控制器类添加到目标中。(项目=>目标名称=>构建阶段=>编译源代码)。文件可能在项目中,但不在目标中。

发生这种情况是因为您曾为情节提要元素创建了一个
@IBOutlet
。随后,您从swift文件中删除了代码(参考)

我创建了一个示例,其中我创建了两个额外的
@IBOutlets
(我将它们命名为“correctField”和“incorrectField”-尽管两者都不正确),并将它们从我的故事板连接到我的swift文件。 然后我从swift文件中删除了代码。这将生成如下图所示的日志:

要删除此类日志消息,可以执行以下操作:

  • 转到“情节提要”并从中选择创建连接的情节提要元素(
    @IBOutlets
  • 打开“连接检查器”,如下图所示
  • 移除不正确的参考插座(在我的例子中是“correctField”和“incorrectField”)
  • 完成
  • 这是在xCode 11中完成的


    Stackoverflow通过向他人显示您的代码来工作。发布没有代码的错误消息可能不会产生任何结果。请发布AppDelegate对预期出口的定义。顺便说一句:很少有必要在销售点中跟踪菜单项,您最终希望如何处理它?我添加了代码。你说的MenuItem是什么意思?我只想在单击菜单项时调用一个函数,仅此而已。thxThx。引用的出口是错误的。右键单击该项目显示我引用了一些不存在的门店。