相关疑难解决方法(0)

Swift 2上的同步URL请求

我从这里有这个代码在Swift 2上做一个URL的同步请求.

  func send(url: String, f: (String)-> ()) {
    var request = NSURLRequest(URL: NSURL(string: url)!)
    var response: NSURLResponse?
    var error: NSErrorPointer = nil
    var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: error)
    var reply = NSString(data: data, encoding: NSUTF8StringEncoding)
    f(reply)
  }
Run Code Online (Sandbox Code Playgroud)

但该函数NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: error)已被弃用,我不知道如何在Swift上执行同步请求,因为替代方法是异步的.Apple显然不赞成同步执行此功能的唯一功能.

我怎样才能做到这一点?

iphone ios ios9 swift2

17
推荐指数
4
解决办法
3万
查看次数

使异步alamofire请求同步

我试图在swift中执行alamofire post请求

func checkIfUserExistsInDB(userName: String) -> NSString
{

  print ("IN")
  var info: NSString = ""

  Alamofire.request(.POST, "http://blablabla.com/getuserdata", parameters: ["queryValue": userName,], encoding:.JSON).responseJSON { request, response, result in
    switch result {
    case .Success(let JSON):
        info = NSString(data: JSON.dataUsingEncoding(NSUTF8StringEncoding)!, encoding: NSUTF8StringEncoding)!

    case .Failure(let data, _):
        print ("IN")
        if let data = data {
            info = (NSString(data: data, encoding: NSUTF8StringEncoding)!)

            print (info)
        }

    }
  }

  return info
}
Run Code Online (Sandbox Code Playgroud)

但我遇到麻烦同步.我知道制作异步功能(如Alamorfire提供的功能)通常不被接受,但在我的情况下,我必须同步进行.

asynchronous synchronous ios swift alamofire

5
推荐指数
1
解决办法
6356
查看次数

标签 统计

ios ×2

alamofire ×1

asynchronous ×1

ios9 ×1

iphone ×1

swift ×1

swift2 ×1

synchronous ×1