Accessing a variable outside a function in Swift

Essentially, I am trying to access my variable "ar1" at a certain point in my code but I cannot. I am trying to return the value too but it returns NULL at that point.

What is wrong here ?

I tried like the below code


---


import Foundation

import UIKit



class Web {

var ar1 = [Double]()

var ar2 = [Double]()



func getData(str: String) -> [Double] {

let request = NSMutableURLRequest(url: URL(string: str)!)

httpGet(request as URLRequest!){

(data, error) -> Void in

if error != nil {

print(error ?? "Error")

} else {

let delimiter = "\t"

let lines:[String] = data.components(separatedBy: CharacterSet.newlines) as [String]



for line in lines {

var values:[String] = []

if line != "" {

values = line.components(separatedBy: delimiter)

let str1 = (values[0])//FIRST COLUMN

let str2 = (values[1])//SECOND COLUMN

let db1 = NumberFormatter().number(from: str1)?.doubleValue

self.ar1.append(db1!)

let db2 = NumberFormatter().number(from: str2)?.doubleValue

self.ar2.append(db2!)

}

}

dump (self.ar1) // "ar1" accessible HERE (returns all elements)

}

}//end of request

//BUT I WANT TO RETURN "ar1" HERE !

// So that I can use it in my MAIN class

dump (self.ar1) // "ar1" not accessible here (returns ZERO elements)

return self.ar1

}

func httpGet(_ request: URLRequest!, callback: @escaping (String, String?) -> Void) {

let session = URLSession.shared

let task = session.dataTask(with: request, completionHandler: {

(data, response, error) -> Void in

if error != nil {

callback("", error!.localizedDescription)

} else {

let result = NSString(data: data!, encoding:

String.Encoding.ascii.rawValue)!

callback(result as String, nil)

}

})

task.resume()

}

}

Accessing a variable outside a function in Swift
 
 
Q