Swift泛型和协议问题

皮尔鲁吉·奇法尼(Pierluigi Cifani)

我正在尝试在应用程序上推送MVVM模式,但是我发现使用Swift和Generics很难。例子:

Comic我的模型层上有一个结构。但是我希望viewControllers消耗符合对象的ComicViewModel协议,以增加关注点的分离。

我将模型结构包装在一个名为define的类中,Box如下所示:

public class Box<T> {
    public let value: T
    public init(_ value: T) { self.value = value }
}

这仅用于在包裹实际的返回值Result枚举像一个解释这里

但是,即使我明确定义了,Swift编译器似乎也不喜欢从转换ComicComicViewModel

func sampleComics() -> Box<Comic> {...}
protocol ComicViewModel {...}
extension Comic : ComicViewModel {...}

func fetchComicsViewModel() -> Box<ComicViewModel> {
    return sampleComics() //ERROR
}

这里有完整的游乐场

非常感谢你的帮助!

林太郎

可悲的是,斯威夫特并不像执行隐式转换。到目前为止,您必须重新Box()设置价值。

func fetchComicsViewModel() -> Box<ComicViewModel> {
    return Box(sampleComics().value)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift泛型和协议扩展

来自分类Dev

Swift泛型与协议

来自分类Dev

如何在Swift中使用约束为泛型类型和协议的属性来初始化类

来自分类Dev

Swift 泛型类、继承和协方差

来自分类Dev

泛型和协议类型的功能参数在实践中有什么区别?

来自分类Dev

Swift 函数调用和协议

来自分类Dev

Swift继承问题泛型

来自分类Dev

符合两种协议的Swift泛型类型

来自分类Dev

Swift泛型类类型既是子类又符合协议

来自分类Dev

Swift嵌套的泛型类型不符合协议

来自分类Dev

Swift协议泛型为函数返回类型

来自分类Dev

将Swift协议与泛型一起使用

来自分类Dev

从Swift中的协议定义函数返回泛型

来自分类Dev

Swift枚举涉及相关协议的多种泛型类型

来自分类Dev

在Swift类的泛型中使用协议数组

来自分类Dev

如何将Swift协议与泛型方法和泛型类型一起使用

来自分类Dev

不能使用符合协议的Swift泛型类型来引用协议?

来自分类Dev

Objective C协议泛型

来自分类Dev

具有继承和协方差的Java泛型

来自分类Dev

Swift-具有类型和协议的属性

来自分类Dev

了解泛型的问题

来自分类Dev

泛型问题Java

来自分类Dev

Java的泛型问题

来自分类Dev

泛型问题

来自分类Dev

泛型问题Java

来自分类Dev

Swift 2.2中协议“ Equatable”的“泛型”冗余一致性

来自分类Dev

您可以在Swift中为特定的泛型类型添加协议扩展吗?

来自分类Dev

扩展一个协议,其中self:Swift中的泛型类型(需要<...>中的参数)

来自分类Dev

在Swift中泛型类型的where子句中访问自定义协议的关联类型