2015-12-16 2 views
0

У меня есть этот протокол Obj-CКак принять протокол Obj-C с одним свойством в Swift?

@protocol MSOutlineViewControllerModelInterface 
@property (weak) MSOutlineViewController *fatherController ; 
@end 

У меня есть этот класс Свифт

class ModelFileTree : NSObject, MSOutlineViewControllerModelInterface 
{ 
    @objc weak var fatherController : MSOutlineViewController? 
} 

И компилятор продолжает говорить мне «Тип ModelFileTree не соответствует протоколу„MSOutlineViewControllerModelInterface“... Я могу 't не имеет значения ...

+0

Это компилируется нормально для меня. Есть ли какие-либо подробности из сообщения об ошибке? – Kevin

+0

Ну, если я перейду к деталям ошибки, у меня есть 2 предложения: 1 - Протокол требует свойства 'fatherController' с типом 'MSOutlineViewController?' (aka «Необязательный ») 2 - Кандидат имеет несогласованный тип «MSOutlineViewController?» (aka «Необязательно ») Мне это похоже на то, что я сделал ... –

+0

Все еще не понят, но подсказка: если я заменю MSOutlineViewController любым другим классом (ну, я пробовал с тремя другими классами) он компилирует ... MSOutlineViewController определяется как: @interface MSOutlineViewController: NSViewController –

ответ

1

Компилятор жалуется, что сравнивает MSOutlineViewController с MSOutlineViewController?, которые отличаются в Swift.

Попробуйте это:

@protocol MSOutlineViewControllerModelInterface 
    @property (weak) MSOutlineViewController * _Nullable fatherController ; 
@end 
+0

Хорошая попытка, но это не решает проблему ... Симптомы все те же –

Смежные вопросы