首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Swift项目中使用Objective库

无法在Swift项目中使用Objective库
EN

Stack Overflow用户
提问于 2015-04-01 13:30:45
回答 1查看 416关注 0票数 0

我刚刚尝试在Swift项目中导入名为DDHotKey的Objective库,但在某些情况下它不起作用。

以下是我所做的步骤:

  • 下载"DDHotKey“库
  • 右键单击项目->“将文件添加到%project_name%”->选择“DDHotKey-主文件夹”文件夹,其中“需要复制项”复选框和“创建文件夹引用”已启用。
  • 根据Apple文档,有关桥接头的提示应该出现,但是它没有-只是复制到项目的目录
  • 我尝试手动向项目添加桥接头(File -> New -> Source ->头文件),名称为“bridge.h ge.h”,并将其设置在项目设置中( bridging -> Swift编译器-代码生成->目标-C桥接标题->“bridge.h ge.h”),并将以下代码放入该文件:

代码语言:javascript
复制
#ifndef project_name_bridge_h
#define project_name_bridge_h

#import "DDHotKey-master/DDHotKeyCenter.h"

#endif

现在,它编译了以下代码:

代码语言:javascript
复制
var hotKeyCenter = DDHotKeyCenter.sharedHotKeyCenter()

但是当我试图调用这个对象的方法时,我得到了一个错误:

代码语言:javascript
复制
hotKeyCenter.registerHotKeyWithKeyCode(34, modifierFlags: 0, task: (NSEvent) {
    println("str")
})

调用中缺少参数“action”的参数参数

虽然有两种方法,而且我使用的方法不同:

代码语言:javascript
复制
- (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;

为什么?我做错了什么?我怎么才能修好它?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-01 13:39:44

闭包语法不正确。我想你的意思是:

代码语言:javascript
复制
hotKeyCenter.registerHotKeyWithKeyCode(34, modifierFlags: 0, task: { _ in
    println("str")
})

如果类型推断可以解决问题,那么_ in可能是不必要的,但我怀疑您需要它。然而,领先的(NSEvent)不是正确的Swift语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29392155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档