如何在Swift中传递Type作为参数

CWi*_*and 7 iphone protocols ios swift

我有一个对象字典,我想要做的是遍历数据集并返回符合给定协议的对象数组.我遇到传递所需协议的语法问题:

func getObjectsThatConformTo<T>(conformance: T.Type) -> [AnyClass]{
  var returnArray: [AnyClass] = []
  for(myKey, myValue) in allCreatedObjects{
    if let conformantObject = myValue as? conformance{
      returnArray.append(conformantObject)
    }
  return returnArray
}
Run Code Online (Sandbox Code Playgroud)

我看到的错误是"一致性"不是一种类型

谢谢你的帮助和时间

avi*_*ara 16

我认为这应该有效:

func getObjectsThatConformToType<T>(type:T.Type) -> [T]{
    var returnArray: [T] = []
    for(myKey, myValue) in allCreatedObjects{
        if let comformantModule = myValue as? T {
            returnArray.append(comformantModule)
        }
    }
    return returnArray
}
Run Code Online (Sandbox Code Playgroud)