Как получить доступ к переменной в swift вне данной функции
По сути, я пытаюсь получить доступ к своей переменной " ar1 " в определенной точке моего кода, но не могу. Я тоже пытаюсь вернуть это значение, но в этот момент оно возвращает NULL.
Что здесь не так ?
Я попробовал, как ниже код :
Что я уже пробовал:
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() } }