Словарь в Swift не удается преобразовать в NSDictionary в Objective C при компиляции (ожидается тип) - PullRequest
0 голосов
/ 11 января 2019

У меня есть 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?

...