Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Swift 返回后数组为空_Swift - Fatal编程技术网

Swift 返回后数组为空

Swift 返回后数组为空,swift,Swift,我试图从下面的方法中获取一个数组。方法parseJSONResult返回一个数组,我用print检查了它是否正确地执行了此操作,并且它绝对正确。变量self.jobOpenings是类中的数组属性。我之所以有这个变量,是因为我想在调用另一个类中的doNetworking()后使用它。但是,.count如果在语句之外调用,如果httpResponse.statusCode==200,则给出0。我希望我已经提供了足够的信息,任何人都可以帮助我,谢谢 func doNetworking() {

我试图从下面的方法中获取一个数组。方法
parseJSONResult
返回一个数组,我用
print
检查了它是否正确地执行了此操作,并且它绝对正确。变量
self.jobOpenings
是类中的数组属性。我之所以有这个变量,是因为我想在调用另一个类中的
doNetworking()
后使用它。但是,
.count
如果在
语句之外调用,如果httpResponse.statusCode==200,则给出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()
    }  

我认为如果在
if httpResponse.statusCode==200
之外调用
.count
方法,它将是0,因为
if
末尾的
返回


当执行
时,如果执行了
,则后面的代码将不会被调用
doNetworking
不会等待请求完成。当您从另一个类检查
count
时,请求仍在运行,因此值显然仍然为零。阅读有关异步调用和回调的信息。可能重复