相关疑难解决方法(0)

使用NSBlockOperation和队列的NSURLSession

我有一个应用程序,目前NSURLConnection用于其绝大多数网络.我想搬到,NSURLSession因为Apple告诉我这是要走的路.

我的应用只是NSURLConnection通过+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error类方法使用同步版本.我在NSBlockOperation运行中执行此操作,NSOperationQueue因此我不会不必要地阻止主队列.以这种方式做事的最大好处是我可以使操作彼此依赖.例如,我可以让请求数据的任务依赖于登录任务完成.

我没有看到任何对同步操作的支持NSURLSession.所有我能找到的文章都是嘲笑我甚至想要同步使用它而且我是一个阻止线程的可怕人物.精细.但我认为没有办法让NSURLSessionTask彼此依赖.有没有办法做到这一点?

或者有描述我将如何以不同的方式做这样的事情?

objective-c ios nsblockoperation nsurlsession

53
推荐指数
1
解决办法
2万
查看次数

Swift函数在完成处理之前返回值

基本上,我有一个用于将简单数据发布到服务器的代码,success如果发布请求成功,它将返回一个布尔值,但是似乎在处理数据之前就已经返回了布尔值,我在做错什么吗?

public func postRequest(rawText: String) -> Bool {
    var success = true
    let destUrl = "http://api.getquesto.com:8080/upload/"
    var request = URLRequest(url: URL(string: destUrl)!)
    request.httpMethod = "POST"
    let postString = rawText
    request.setValue("text/plain", forHTTPHeaderField: "Content-Type")
//    request.setValue("compute", forHTTPHeaderField: "Questo-Query")
//    request.setValue("Fuck you", forHTTPHeaderField: "quizTitle")

    request.httpBody = postString.data(using: .utf8)
    print(request.httpBody!)
    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        guard let data = data, error == nil else {                                                 // check for fundamental networking error
            print("error=\(error)")
            success = false
            print(success)

            return …
Run Code Online (Sandbox Code Playgroud)

function ios nsurlsession swift swift3

4
推荐指数
1
解决办法
1837
查看次数