如何传递类型参数并与对象类型进行比较

时间:2015-08-05 09:03:44

标签: ios swift

我学习了Swift的通用部分,并希望实现像根据参数获取对象之类的内容。

代码似乎是:

public func getChartRenderer(classType: anyClass) -> ChartDataRendererBase?
{
    for renderer in _renderers
    {
        if renderer.dynamicType is anyClass
        {
            return renderer
        }
    }

    return nil
}

这就是我所说的:

let rendererType = LineChartRenderer.self
if let lineChartRenderer = renderer.getChartRenderer(rendererType) {
    // do something
}

但我从来没有得到它的工作......我当然误解了一些东西,但我试过谷歌,但仍然不清楚如何做到这一点。提前谢谢

1 个答案:

答案 0 :(得分:0)

使用isKindOfClass

public func getChartRenderer(classType: AnyClass) -> ChartDataRendererBase?
{
    for renderer in _renderers
    {
        if renderer.isKindOfClass(classType)
        {
            return renderer
        }
    }

    return nil
}