I want to be able to pass a class (not an initialized object) of a certain protocol type to a method, then call the class functions of that class in the method. Code below.
I am using Swift and have an protocol defined like this
    //Protocol for any object to be used with an FAUAPIConnection
protocol FAUAPIModel{
    //Used to parse the object from a given dictionary to an object
    class func parseFromJSON(JSON:AnyObject) -> Self
    //Required default init
    init()
}
What I would like to do is have a method like this
    func getSomeParsingDone<T:FAUAPIModel>(model:T.Type? = nil, getPath:path, callingObj:CallingClass) -> Void
    {
        //GetIt is inconsequential, just logic to get an object from a certain path
         var returnObj:AnyObject = GetIt.get(path)
         if(model != nil){
            returnObj = model!.parseFromJSON()  <<<<<< Type 'T' does not conform to protocol 'AnyObject'
         }
         callingObj.done(returnObj)
    }
Object that implements the protocol
import Foundation
class MyObj: FAUAPIModel{  
   var neededVal:String
   var nonneededVal:String
  required convenience init(){
    self.init(neededVal:"VALUE")
  }
  init(neededVal:String, nonneededVal:String = ""){
    self.neededVal = neededVal
    self.nonneededVal = nonneededVal
  }
  class func parseFromJSON(JSON:AnyObject) -> WGMPart
  {
     return WGMPart() <<<<<<<< Method 'parseFromJSON' in non-final class 'WGMPart' must return 'Self' to conform to protocol 'FAUAPIModel'
  }
}
However, I keep getting two errors. I have indicated these above with '<<<<<<<<<<<<'
compile error.
 
     
     
    