Swift泛型有线语法确实有效,但是可以用不同的方式编写吗?

时间:2018-11-27 04:05:35

标签: objective-c swift

所以我有这个功能:

set database sql syntax pgs true

它可以工作并调用目标c函数

override func sendRequest(_ pageIndex: Int) -> CSResponse<AnyObject> & CSListData {
    return server.loadUserArticles(pageIndex)
}

我正在寻找文档,却找不到解释,CSListData是objc协议,我正在尝试编写类似的内容

- (CSResponse <CSListData> *)loadUserArticles:(NSInteger)pageIndex;

但这可悲地是不会编译错误,因为我使用这种语法将其分配给了目标c中的属性

override func sendRequest<T : AnyObject & CSListData >(_ pageIndex: Int) -> CSResponse<T> {
        return server.loadUserArticles(pageIndex)
}

错误:

@property(nonatomic) CSResponse <CSListData> *(^onLoadList)(NSInteger);

完全无法理解的是为什么返回类型Error:(26, 43) cannot assign value of type '(Int) -> CSResponse<_>' to type '(Int) -> CSResponse<AnyObject> & CSListData' 实际上是<AnyObject> & CSListData。谢谢。

0 个答案:

没有答案