Alamofire.requestObject自定义案例未调用

时间:2015-08-19 12:52:26

标签: ios json swift mapping alamofire

由于很多人都有这个错误,我也是如此,我不知道为什么“responseObject不能用类型的参数列表调用((JSONResponse>) - > _)”

我也在使用Alamofire + ObjectMapper的JSON映射

有没有人有想法,Alamofire有什么不对,经常出错,可能是关于理解Alamofire的任何想法吗?

import Foundation
import Alamofire
import AlamofireObjectMapper
import ObjectMapper

public protocol Mappable {
    static func newInstance(map: Map) -> Mappable?
    mutating func mapping(map: Map)
}

class JMapping {



    func getJSON() {

        let url = "http://www.somestringToJson/json.json"


        Alamofire
        .request(.GET, url, parameters: nil)


            .responseObject { (response: JSONResponse?) in
                println(response?.title)
                if let events = response?.events {
                    for event in events {
                        println(event.id)
                        println(event.title)

                    }
                }
        }
    }

}




class JSONResponse: Mappable {
    var title: String?
    var id: String?
    var events: [EventsResponse]?


    class func newInstance(map: Map) -> Mappable? {
            return JSONResponse()
        }


    func mapping(map: Map) {
        title <- map["title"]
        id <- map["id"]
        events <- map["events"]

    }


}

class EventsResponse: Mappable {
    var title: String?
    var id: String?
    var content: [ContentResponse]?

    class func newInstance(map:Map) -> Mappable? {
        return EventsResponse()
    }

    func mapping(map: Map) {
        title <- map["title"]
        id <- map["id"]
        content <- map["content"]
    }

}

class ContentResponse: Mappable{
    var content_type: String?
    var visible: Bool?
    var data: NSArray?

    class func newInstance(map: Map) -> Mappable? {
        return ContentResponse()
    }

    func mapping(map: Map) {
        content_type <- map["content_type"]
        visible <- map["visible"]
        data <- map["data"]
    }
}

1 个答案:

答案 0 :(得分:0)

            Alamofire.request(.GET, "http://yoururl.de")
                    .response { (request, response, data, error) in

                    }

基本的alamofire get请求看起来像这样。请求完成后调用响应。 之后,我建议使用SwiftyJSON并转换您的响应数据。

    if let data = (responseBody as NSString).dataUsingEncoding(NSUTF8StringEncoding) {
        let json = JSON(data: data)
        println(json)
    }