2017-01-19 2 views
0
@objc protocol filterDelegate { 
    @objc optional func appliedFilters(_ filters:[String:AnyObject], withDisplayValues displayValues:[String?]) -> Void 
} 

Описанный выше метод протокола дает мне ошибку метод не может быть помечен как @objc, так как тип параметра 2 не может быть представлена ​​в Objective-CКак использовать параметр с дополнительным типа в дополнительном методе протокола

Я знаю, что эта ошибка связана с использованием String? с @objc.

Как я могу достичь той же функции передачи String? к необязательному методу протокола. Есть ли альтернатива для того же?

+1

Вы используете этот протокол в коде Objective C? – user28434

ответ

0

String данные тип поддержка только в Swift. Таким образом, вы можете использовать NSString, а не String, которые поддерживаются на обеих платформах.

@objc protocol filterDelegate { 
    @objc optional func appliedFilters(_ filters:[String:AnyObject], withDisplayValues displayValues:[NSString?]) -> Void 
}