2017-11-09 7 views
1

する場合であっても、私はのDataObjectユーザーが使用するプロトコルであるこの関数を呼び出すしようとしている関数を呼び出すことはできませんパラメータ:は、すべてのパラメータが正しい

static func create<T : DataObject>(_ object: T, completionHandler: @escaping (DataObject?, Error?) -> Void) { 
     let endpoint = NetworkManager.shared.baseURL + UserDAO.methodPath 
     NetworkManager.makePostRequest(to: endpoint, dataObject: object, objectType: User.self, completionHandler: completionHandler) 
    } 

エラーが、私はこのパラメータのリストでそれを呼び出すことはできませんと言って私には見えますが、それらのすべてが正しい...私は本当に何が起こっているのか分かりません。

エラー:

Cannot invoke 'makePostRequest' with an argument list of type '(to: String, dataObject: T, objectType: User.Type, completionHandler: (DataObject?, Error?) -> Void)'

答えて

2

私はあなたが、少なくともそれは遊び場に私のために働いた、このようにそれを呼び出す必要がありますね。

makePostRequest(to: endpoint, dataObject: object, objectType: T.self, completionHandler: completionHandler) 

または

func makePostRequest<T: DataObject, U>(to endpoint:String, dataObject: T, objectType: U.Type, completionHandler: @escaping (DataObject?, Error?) -> Void) 

他の一般的な変数を追加し、私はあなたが達成しようとしているかわからないので、これは働いていた別の一般的な変数を追加し、すべての

+0

であなたを助けていない可能性があります!どうもありがとうございました! –

関連する問題