Swift Protocol Как заявить как общее соответствие - PullRequest
0 голосов
/ 22 февраля 2019

Здравствуйте! У меня проблема с протоколом Swift

Я объявил протокол с именем BaseViewModel

У меня есть класс с именами AViewModel и BViewModel, которые соответствуют протоколу BaseViewModel

class AViewModel : NSObject , BaseViewModel 

class BViewModel : NSObject , BaseViewModel 

Теперь мне нужно объявить блок завершения, возвращающий те Объекты, которые соответствуют протоколу BaseViewModel

typealias ViewModelCompletionBlock = (_ value : BaseViewModel) -> Void

В target-C я обычно объявлял что-то вроде этого

id<BaseViewModel>

В Swiftкак объявить то же самое ??

1 Ответ

0 голосов
/ 22 февраля 2019

Вы имеете в виду что-то подобное?

typealias ViewModelCompletionBlock<T: BaseViewModel> = (_ value : T) -> Void
...