Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 2.0 Alamofire完成处理程序返回Json_Ios_Json_Swift_Alamofire_Swifty Json - Fatal编程技术网

Ios Swift 2.0 Alamofire完成处理程序返回Json

Ios Swift 2.0 Alamofire完成处理程序返回Json,ios,json,swift,alamofire,swifty-json,Ios,Json,Swift,Alamofire,Swifty Json,我的目标是创建一个简单的函数,在这个函数中,我传入一个url,它返回JSON。我环顾四周,发现了一些使用Alamofire实现完成处理程序的示例 我还使用快速Json来帮助解析它 如何将这里的内容转换为返回Json的函数 func request() { Alamofire.request(.GET, API_END_POINT) .responseJSON { response in // swiftyJsonVar is what I wou

我的目标是创建一个简单的函数,在这个函数中,我传入一个url,它返回JSON。我环顾四周,发现了一些使用Alamofire实现完成处理程序的示例

我还使用快速Json来帮助解析它

如何将这里的内容转换为返回Json的函数

func request() {
    Alamofire.request(.GET, API_END_POINT)
    .responseJSON {
        response in

        // swiftyJsonVar is what I would like this function to return.
        let swiftyJsonVar = JSON(response.result.value!)
    }
}

Swift 3+Alamofire 4+

 // Call function
    myFunction("bodrum") { response in
      print(response["yourParameter"].stringValue)
    }

    // POST
    func myFunction(_ cityName:String, completion: @escaping (JSON) -> ()) {

      let token = "token"
      let parameters = ["city" : cityName]
      let headers = ["Authorization": "token"]
      let url = URL(string: "url")!
      let reqUrl = URLRequest(url: url)

      Alamofire.request(reqUrl, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: headers)
        .validate()
        .responseJSON { response in
          switch response.result {
          case .Success:
            let jsonData = JSON(data: response.data!)
            completion(jsonData)
          case .Failure(let error):
            MExceptionManager.handleNetworkErrors(error)
            completion(JSON(data: NSData()))
          }
      }
    }
// POST
func myFunction(cityName:String, completion : (JSON) -> ()) {
  Alamofire.request(.POST, "url", parameters: ["city" : cityName], encoding: ParameterEncoding.JSON, headers: ["Authorization": "token"])
    .validate()
    .responseJSON { response in
      switch response.result {
      case .Success:
        let jsonData = JSON(data: response.data!)
        completion(jsonData)
      case .Failure(let error):
        MExceptionManager.handleNetworkErrors(error)
        completion(JSON(data: NSData()))
      }
  }
}

// GET
func myFunction(cityName:String, completion : (JSON) -> ()) {
  Alamofire.request(.GET, "url", parameters: ["param1" : cityName], headers: ["Authorization": "token"])
    .validate()
    .responseJSON { response in
      switch response.result {
      case .Success:
        let jsonData = JSON(data: response.data!)
        completion(jsonData)
      case .Failure(let error):
        MExceptionManager.handleNetworkErrors(error)
        completion(JSON(data: NSData()))
      }
  }
}

// Call function
myFunction("bodrum") { response in
  print(response["yourParameter"].stringValue)
}
Swift 2和Alamofire 3+

 // Call function
    myFunction("bodrum") { response in
      print(response["yourParameter"].stringValue)
    }

    // POST
    func myFunction(_ cityName:String, completion: @escaping (JSON) -> ()) {

      let token = "token"
      let parameters = ["city" : cityName]
      let headers = ["Authorization": "token"]
      let url = URL(string: "url")!
      let reqUrl = URLRequest(url: url)

      Alamofire.request(reqUrl, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: headers)
        .validate()
        .responseJSON { response in
          switch response.result {
          case .Success:
            let jsonData = JSON(data: response.data!)
            completion(jsonData)
          case .Failure(let error):
            MExceptionManager.handleNetworkErrors(error)
            completion(JSON(data: NSData()))
          }
      }
    }
// POST
func myFunction(cityName:String, completion : (JSON) -> ()) {
  Alamofire.request(.POST, "url", parameters: ["city" : cityName], encoding: ParameterEncoding.JSON, headers: ["Authorization": "token"])
    .validate()
    .responseJSON { response in
      switch response.result {
      case .Success:
        let jsonData = JSON(data: response.data!)
        completion(jsonData)
      case .Failure(let error):
        MExceptionManager.handleNetworkErrors(error)
        completion(JSON(data: NSData()))
      }
  }
}

// GET
func myFunction(cityName:String, completion : (JSON) -> ()) {
  Alamofire.request(.GET, "url", parameters: ["param1" : cityName], headers: ["Authorization": "token"])
    .validate()
    .responseJSON { response in
      switch response.result {
      case .Success:
        let jsonData = JSON(data: response.data!)
        completion(jsonData)
      case .Failure(let error):
        MExceptionManager.handleNetworkErrors(error)
        completion(JSON(data: NSData()))
      }
  }
}

// Call function
myFunction("bodrum") { response in
  print(response["yourParameter"].stringValue)
}

你的问题是什么?我编辑了我的描述:我如何将我这里的内容转换成一个函数,它返回我的Json。这看起来很棒!但是你能告诉我怎么正确地称呼这个吗?我不认为它像:var json=myFunction(“myParam”)那么简单太棒了!它像一个魔咒一样工作,只是需要处理b.c.无法获得未解析标识符的问题,但这没什么大不了的,非常感谢:)@fatihyildizhan您能更新一下Alamofire 4.0和Swift 3的代码吗?