Итак, у меня есть эта функция:
override func sendRequest(_ pageIndex: Int) -> CSResponse<AnyObject> & CSListData {
return server.loadUserArticles(pageIndex)
}
Она работает и вызывает целевую функцию c
- (CSResponse <CSListData> *)loadUserArticles:(NSInteger)pageIndex;
Я ищу документацию и не могу найти объяснение, CSListData является протоколом objc, и япытался написать что-то вроде этого
override func sendRequest<T : AnyObject & CSListData >(_ pageIndex: Int) -> CSResponse<T> {
return server.loadUserArticles(pageIndex)
}
Но это, к сожалению, не компилируется с ошибкой, потому что я назначаю его свойству в объекте c с этим синтаксисом
@property(nonatomic) CSResponse <CSListData> *(^onLoadList)(NSInteger);
Ошибка:
Error:(26, 43) cannot assign value of type '(Int) -> CSResponse<_>' to type '(Int) -> CSResponse<AnyObject> & CSListData'
Что совершенно непонятно, так это почему тип возврата <AnyObject> & CSListData
, когда он на самом деле CSResponse<CSListData>
.Благодаря.