问候:仪器告诉我,我在viewDidLoad中的两个addLocalMonitor调用中有内存泄漏(3字节a-piece)。我很高兴看到我的错误以及为什么这可能(可能)泄漏。非常感谢任何帮助!
环境:
override func keyDown(with theEvent: NSEvent) {
nextResponder?.keyDown(with: theEvent)
let hasCommand = theEvent.modifierFlags.contains(.command)
switch theEvent.charactersIgnoringModifiers! {
case "q" where hasCommand == true: // Capture "Command-Q"
let app = NSApplication.shared
app.terminate(NSApplication.shared.delegate as! AppDelegate)
break
default:
break
}
}
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addLocalMonitorForEvents(matching: .keyDown) { [unowned self] (theEvent) -> NSEvent? in
self.keyDown(with: theEvent)
return theEvent
}
NSEvent.addLocalMonitorForEvents(matching: .flagsChanged) { [unowned self] (theEvent) -> NSEvent? in
self.flagsChanged(with: theEvent)
return theEvent
}
}
答案 0 :(得分:0)
对于任何偶然发现这种情况的人来说,提出的泄漏通常是其他地方的症状,在其他地方。事实证明我错过了埋藏在其他地方封闭的[无主自我]。一旦得到纠正,这个"泄漏"走了。针 - 遇见干草堆。
底线:上面的语法不是错误的。