1

私は現在機能を持っています:

  func getJSONDataDictionary (accessToken: String, response: Mappable, url: String) {

    let headers = [
      "Cache-Control": "no-cache",
      "Authorization": "bearer \(accessToken)"
    ]

    Alamofire.request(.GET, url, encoding: .JSON, headers: headers)
      .responseObject{  (response: Response<response, NSError>) in

       let JSONDict = response.result.value

    }
  }

応答パラメーターのタイプ Mappable (クラスが ObjectMapper プロトコルに準拠しているかどうかを識別するために使用されるクラス) のクラスを渡したい場所。現在のコードでは、「応答はタイプではありません」というエラーが表示されます。Mappable パラメーターを受け取るように、関数に対してできることはありますか?

4

3 に答える 3

0

エラーメッセージは、パラメーターの結果が型ではないことを示していますが、そうではありません。Mappableプロトコルです

次のように、関数をジェネリックにすることをお勧めします。

    func getJSONDataDictionary< T: Mappable>(accessToken: String, response: T, url: String) {

    let headers = [
      "Cache-Control": "no-cache",
      "Authorization": "bearer \(accessToken)"
    ]

    Alamofire.request(.GET, url, encoding: .JSON, headers: headers)
      .responseObject{  (response: Response<response, NSError>) in

       let JSONDict = response.result.value

    }
  }

ジェネリック型Tは、 Mappableプロトコルに制約されます。

于 2016-11-30T16:46:47.370 に答える
0
let query_url = Constant.BASE_URL + Constant.ENDPOINT
      var urlRequest = URLRequest(url: URL(string: query_url)!)

      urlRequest.httpMethod = HTTPMethod.get.rawValue
      urlRequest.addValue("Cache-Control", forHTTPHeaderField: "no-cache"")

      urlRequest.addValue("Authorization", forHTTPHeaderField:"bearer \(accessToken)")

      let req = Alamofire.request(urlRequest)
      req.responseObject{ (response: DataResponse<Model>) in
                let value = response.result.value
                print(value?.data?.count)  
            }
于 2018-05-23T05:56:30.283 に答える