我刚刚尝试在Swift项目中导入名为DDHotKey的Objective-C库,但在某些情况下它不起作用。
以下是我完成的步骤:
#ifndef project_name_bridge_h
#define project_name_bridge_h
#import "DDHotKey-master/DDHotKeyCenter.h"
#endif
现在它编译以下代码:
var hotKeyCenter = DDHotKeyCenter.sharedHotKeyCenter()
但是当我尝试调用此对象的方法时,我遇到了错误:
hotKeyCenter.registerHotKeyWithKeyCode(34, modifierFlags: 0, task: (NSEvent) {
println("str")
})
在调用
中缺少参数'action'的参数
虽然有两种方法,我使用不同的方法:
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags target:(id)target action:(SEL)action object:(id)object;
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags task:(DDHotKeyTask)task;
为什么呢?我究竟做错了什么?我该如何解决?
提前致谢。
答案 0 :(得分:1)
您的闭包语法不正确。我想你的意思是:
hotKeyCenter.registerHotKeyWithKeyCode(34, modifierFlags: 0, task: { _ in
println("str")
})
如果类型推断可以解决问题,_ in
可能是不必要的,但我怀疑你需要它。但是,前导(NSEvent)
不是正确的Swift语法。