2017-04-16 3 views
1

私は自分のコードにAlamofireとAlamofireObjectMapperを使用しています。私のクラスをAnyクラスに変換するエラーを引き起こすalamofireオブジェクトマッパーを使用

これは、マップしようとしているイム私のクラスである:

import ObjectMapper 

import ObjectMapper 

class ApplicationCollection: Mappable { 

    var title:String? 
    var name:String? 
    var collectionDescription:String? 
    var collectionId:Int! 
    var applications:[Application]? 

    required init?(map: Map) { 

    } 

    func mapping(map: Map) { 
     title <- map["title"] 
     collectionDescription <- map["description"] 
     collectionId <- map["id"] 
     applications <- map["applications"] 

    } 
} 

そして、私はこのように私のAPIの構造体で、このクラスを使用しようとしている:

import Foundation 
import Alamofire 
import AlamofireObjectMapper 

struct API { 

    static let URL = "http://mysite.dev/" 
    enum Path { 
     case application(Int) 
     case mainPageCollections 
     var url:String { 
      let path:String 

      switch self { 
      case .application(let appId): 
       path = "applicatipn/\(appId)" 
      case .mainPageCollections: 
       path = "ApplicationCollections" 
      } 

      return API.URL + path 

     } 

    } 

    static func getRuleSetDetail(callback: @escaping (DataResponse<ApplicationCollection>) -> Void){ 
     _ = Alamofire.request(Path.mainPageCollections.url, method: .get, parameters: nil, encoding: URLEncoding.default).responseJSON(completionHandler: callback) 
    } 

} 

、その後、私はこのエラーを取得します:

型の値を変換できません - 期待される引数の型に '(DataResponse)>ボイド' '(DataResponse) - ボイド>'

どうすればこの問題を解決できますか?

答えて

1

あなたは

_ = Alamofire.request(Path.mainPageCollections.url, method: .get, parameters: nil, encoding: URLEncoding.default).responseObject(completionHandler: callback) 

は、あなたがマップ可能なプロトコルをベースにすることができますconfrim使用する必要があります

関連する問題