2016-02-12 36 views
-2

我想從下面的方法獲取數組。方法parseJSONResult返回一個數組,我已經檢查它是否正確地使用了print,它確實如此。變量self.jobOpenings是該類中的數組屬性。我有這個變量,因爲我想在另一個類中調用doNetworking()之後使用它。但是,如果在if httpResponse.statusCode == 200聲明之外呼叫,則.count會給我0。我希望我已經提供了足夠的信息給任何人幫助我,謝謝。返回後數組是空的

func doNetworking() { 
     dataTask?.cancel() 
     let url = NSURL(string: "https://example.com/") 
     let session = NSURLSession.sharedSession() 
     dataTask = session.dataTaskWithURL(url!, completionHandler: { 
      data, response, error in 
      if let error = error { 
       if error.code == -999 { 
        print(error) 
       } 
      } else if let httpResponse = response as? NSHTTPURLResponse { 
       if httpResponse.statusCode == 200 { 
        let parsedData = self.parseJSONData(data!) 
        self.jobOpenings = self.parseJSONResult(parsedData!) 
        return 
       } 
      } 
     }) 
     dataTask?.resume() 
    } 
+0

'doNetworking'不等待請求完成。當您從另一個類中檢查count時,請求仍在運行,所以該值顯然仍然爲零。瞭解異步調用和回調。 – Sulthan

+0

[使用NSURLSession下載JSON不會返回任何數據](http://stackoverflow.com/questions/35289389/downloading-json-with-nsurlsession-doesnt-return-any-data) – Moritz

回答

0

我認爲,如果你調用if httpResponse.statusCode == 200.count方法,將當if執行後的代碼,因爲return在的if

末爲0,不會被稱爲