NSURLsession不在循环中工作

时间:2015-12-27 22:25:52

标签: swift nsurlsession urlrequest

我尝试向多个URL发出请求以下载HTML,然后将其转换为JSON格式。我遇到麻烦的地方是当我尝试向for循环中的多个URL发出请求时。我对异步请求没有掌握,所以,这对你们来说可能是一个明显的错误,但我无法找到问题的答案。

如果我尝试在没有循环的情况下运行它(仅引用TFHppleElement数组中的单个对象)它似乎有效,但是一旦我循环它,请求似乎不会做成。

不起作用:

func getData(data: [TFHppleElement]) {

   for index in data{

        let thisurl="https://theurl.org\(index.firstChild.objectForKey("href"))"

        let session = NSURLSession.sharedSession()
        let request = NSMutableURLRequest(URL: NSURL(string: thisurl)!)
        request.HTTPMethod = "GET"

        let task = session.dataTaskWithRequest(request){
            (data : NSData?, response : NSURLResponse?, error : NSError?) -> Void in

            if error == nil{

                let parser = HTMLParser()
                parser.parseNode(data!, xPathString: "//span[@class='odd']", callback: self.createJSON)


            }else{
                print("Request not working")
            }

        }

        task.resume()
    }

}

使用:

func getData(data: [TFHppleElement]) {

  // for index in data{

        let thisurl="https://theurl.org\(data[0].objectForKey("href"))"

        let session = NSURLSession.sharedSession()
        let request = NSMutableURLRequest(URL: NSURL(string: thisurl)!)
        request.HTTPMethod = "GET"

        let task = session.dataTaskWithRequest(request){
            (data : NSData?, response : NSURLResponse?, error : NSError?) -> Void in

            if error == nil{

                let parser = HTMLParser()
                parser.parseNode(data!, xPathString: "//span[@class='odd']", callback: self.createJSON)


            }else{
                print("Request not working")
            }

        }

        task.resume()
    //}

}

我还没有编程一段时间,所以如果这可能是一个明显的错误,我很抱歉。

0 个答案:

没有答案