通用toArray <t>函数,可以在类型T上调用init

时间:2016-11-13 02:17:31

标签: ios swift

我有一个名为FlowerCategory的结构,如下所示:

struct FlowerCategory  {

    var id :Int?
    var title :String
    var imageURL :String



}

extension FlowerCategory {

    init?(node :Node) {

       // do something here 
    }
}

我正在Node类上创建一个扩展,它将节点转换为强类型类数组。问题是我无法调用T.init初始值设定项,如下所示:

extension Node {

    func toArray<T>() -> [T]? {

        guard let nodes = self.nodeArray else {
            return nil
        }

        return nodes.flatMap(T.init) // This will NOT work
    }

}

无论如何要做我想要达到的目标吗?

更新:

enter image description here

0 个答案:

没有答案