Я только что попытался импортировать библиотеку Objective-C с именем DDHotKey в проект Swift, и в некоторых случаях это не работает.Невозможно использовать библиотеку Objective-C в проекте Swift
Вот шаги, которые я сделал:
- Скачать хранилище "DDHotKey"
- Щелкните правой кнопкой мыши на проекте -> "Добавить файлы в% project_name%" -> Выбрать «DDHotKey-мастер "с флажком« Копировать элементы в случае необходимости »и« Создать ссылки на папки ».
- Согласно документации Apple, тогда должно появиться приглашение о заголовочном заголовке, но оно не было: файлы просто скопированы в каталог проекта
- Я попытался добавить заголовок заголовка к p roject вручную (File -> New -> Source -> Header file) с именем «bridge.h», установите его в настройках проекта (Параметры сборки -> Swift Compiler - Генерация кода -> Objective-C Bridging Header -> " bridge.h ") и поставьте в следующем файле:
.
#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")
})
Missing argument for parameter 'action' in call
хотя это два метода, и я использую разные:
- (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;
Почему? Что я делаю не так? Как я могу это исправить?
Заранее благодарен.
Ах, извините, спасибо большое. К сожалению, он не связан сейчас - по какой-то причине он не видит таких символов, как DDHotKeyCenter, и дает мне ошибку «Неопределенные символы для архитектуры x86_64:« _OBJC_CLASS _ $ _ DDHotKeyCenter ». Что может быть причиной такого поведения? – FrozenHeart
Это несвязанная проблема. Вы почти не связываете DDHotKeyCenter. Если вы считаете, что это так, опишите ситуацию в новом вопросе (хотя поиск SO для привязки objc к swift, вероятно, поможет вам). –