小编Art*_*ann的帖子

Swift Generic 类型在运行时首先已知

我有一个关于 swift 和泛型的问题。我试图做的是获得一个具有泛型类型的对象。但我首先知道运行时的类型。但要快速切入正题。

新编辑的块:

也许我可以用班级名称做到这一点?我有一个类名作为字符串。我是通过镜子得到的。我可以在字符串中使用该类名创建一个通用实例吗?

let classname: String = "ClassA"
let firstA: a<classname> = a<classname>()
//            ^^^^^^^^^      ^^^^^^^^^
//            what to put here???          
Run Code Online (Sandbox Code Playgroud)

新编辑的块结束:

我有两个具有泛型类型的类:

这是我的类型必须实现的协议:

protocol ToImplement {
    func getTypeForKey(key: String) -> NSObject.Type
}
Run Code Online (Sandbox Code Playgroud)

这是我用于我的第一个通用类型的类:

class MyClass: ToImplement {
    func getTypeForKey(key: String) -> NSObject.Type {
        if key == "key1" {
            return UIView.self
        } 
        else {
            return UIButton.self
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的第一个具有泛型类型的类:

class a<T:ToImplement> {
    func doSomethingWith(obj: T) -> T {

        // the next part usually runs in an iteration …
Run Code Online (Sandbox Code Playgroud)

generics runtime swift

5
推荐指数
1
解决办法
666
查看次数

一次订阅的RXSwift

我想订阅一个可观察的对象,但是在第一个元素之后,我想处置该订阅者。

有一些默认的方法吗?

如果没有,您将如何解决?顺便说一下,我不能改变可观察的东西。

subscriber swift rx-swift

1
推荐指数
1
解决办法
1508
查看次数

标签 统计

swift ×2

generics ×1

runtime ×1

rx-swift ×1

subscriber ×1