Ich versuche, Daten aus einer JSON-Datei zu laden, die in meiner Tabellenansicht verwendet werden soll. Trotzdem, wenn ich diese Funktion in Viewdidload aufrufen, enthält das Array, das ich mit Daten füllen möchte, keine Daten und gibt ein leeres Array zurück.Funktion gibt ein leeres Array zurück, anstatt dass es ausgefüllt wird
class CompanyModel {
func getJSON() -> NSMutableArray() {
let companyArray: NSMutableArray = NSMutableArray()
let requestURL: NSURL = NSURL(string: "http://localhost/Companies/JSON.php")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) { <- does not enter bracket?
(data, response, error) -> Void in
let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
print("Everyone is fine, file downloaded successfully.")
do{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
if let companies = json["companies"] as? [[String: AnyObject]] {
for company in companies {
if let name = company["name"] as? String,
let phoneNumber = company["phone_number"] as? String,
let website = company["website"] as? String,
let email = company["email"] as? String,
let address = company["address"] as? String
{
let company = CompanyModel()
company.name = name
company.phoneNumber = phoneNumber
company.website = website
company.email = email
company.address = address
}
companyArray.addObject(company)
print(companyArray)
}
}
} catch {
print("Error with Json: \(error)")
}
}
print(companyArray) <- array is populated
}
print(companyArray) <- array is empty
task.resume()
return companyArray
}
}
Wenn ich eine Debug-Sitzung ausführen, scheint es nicht die Halterung gelangt, wo ich oben erwähnt habe. Stattdessen springt es direkt zur Rückgabe der Funktion, die dann ein leeres Array zurückgibt. Ich glaube, dass keine Daten aus der JSON-Datei abgerufen werden, aber ich bin nicht sicher, warum.
versuchen Sie Ihren JSON drucken, erhalten Sie gültige Daten? Nur um sicher zu gehen. auch, wenn Sie Ihre Json-Daten teilen können, könnte es einfacher zu beantworten. Da "Firmen" möglicherweise nicht der unmittelbare Schlüssel von json sind, könnte es ein Schlüssel eines Schlüssels in json sein. –
Drucken Sie Ihre Json-Daten und überprüfen Sie ihre gültige JSON oder nicht –