我遇到了一个奇怪的错误:
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
我在将 menuItem 添加到菜单并将功能连接到它时发生。
我不知道问题是什么。该应用程序运行良好,但我认为忽略错误不是一个明智的主意。 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 文件中有一个损坏的 socket 。通常,当您为 ivar 或属性设置导出时会发生这种情况,但后来不使用 Xcode 的重命名功能将其删除或重命名。
关于macos - (NSMenuItem) : missing setter or instance variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410675/