Swift:如何在类函数中为Self转换值

时间:2018-01-05 10:17:59

标签: ios swift

这里我有一个类函数public class func testing() -> Self

public extension UIViewController {
    public class func testing() -> Self {
        return getInstance()
    }
}

以及我无法修改的getInstance() -> UIViewController函数:

public func getInstance() -> UIViewController {
    return UIViewController()
}

现在,如何在getInstance()函数中将Self函数的返回值转换为testing()

return getInstance() // error
return getInstance() as! Self // error
return getInstance() as! UIViewController // error

1 个答案:

答案 0 :(得分:2)

只需将您的功能更改为

即可
public extension UIViewController {
    public class func testing() -> UIViewController {
        return getInstance()
    }
}

该函数需要指定一个返回 Type ,在这种情况下,它总是UIViewController,就像你扩展的类型一样。