У меня есть Cocoa Touch Framework, написанный на Swift, на который я ссылаюсь в проекте Objective C (приложение для iOS).
Фреймворк Swift имеет протокол и класс примерно так:
public protocol TestProtocol
{
func configure (settings: Dictionary<String, Any>)
}
public class MyFramework: NSObject, TestProtocol
{
@objc public func configure (settings: Dictionary<String, Any>)
{
}
}
Когда я пытаюсь сослаться на каркас в моем проекте Objective C, я получаю ошибки сборки в скомпилированном классе Swift:
Expected a type
И при просмотре сгенерированного / скомпилированного класса (MyFramework-Swift.h
) я вижу ошибку в следующей строке:
- (void)configureWithSettings:(NSDictionary<NSString *, id> * _Nonnull)settings;
Похоже, преобразование Swift в Objective C не работает должным образом. Если я закомментирую метод или изменит функцию на другой параметр, ошибка исчезнет.
Есть ли способ сообщить компилятору о типе / generics для Dictionary
для преобразования в NSDictionary
?