/ / Otrzymywanie liczby (liczby elementów) w odpowiedzi JSON w trybie szybkim - iOS, JSON, SWIFT, rzutowanie, praca w sieci

Uzyskiwanie liczby (liczba pozycji) w odpowiedzi jsona w szybkim - ios, json, swift, casting, afnetworking

Jestem teraz w trakcie szybkiego uczenia się. Użyłem ANetworking (biblioteka w Obj C) w moim szybkim kodzie. Udało mi się zwrócić przeanalizowany kod JSON. Chciałbym jednak znaleźć liczbę zwróconych elementów json. Oto co dotychczas zrobiłem:

//in viewDidAppear function
manager.GET(url,
parameters: nil,
success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
self.jsonFunc(responseObject.description)

Zrobiłem powyższe jak to pytanie w stackoverflow: AFNetworking and Swift - Zapisz odpowiedź JSON

Teraz w funkcji jsonFunc próbuję uzyskać liczbę danych json w następujący sposób:

func jsonFunc(data: AnyObject) {
let count: Int? = data.count // I understand that data is AnyObject. How to typecast and get the number of data items here?
if let ct = count {
println(ct)
for index in 0...ct-1 {

if let parsedData = data[index] as? [String: AnyObject] {
println(parsedData)
}
}
}
}

Jaki błąd konwersji popełniam / brakuje mi tutaj?

Odpowiedzi:

0 dla odpowiedzi № 1

Domyślnie zestawy AFHTTPRequestOperationManagerresponseSerializer na instancję AFJSONResponseSerializer, więc responseObject jest już ustawionym parsowanym JSON jako Dictionary. Oto kod (przerobiony, aby usunąć nadmiarowość podczas rzutowania i pisania):

  func jsonLoaded(responseObject: AnyObject) {
if let data = responseObject as? NSDictionary {
let count = data.count
print(count)
for index in 0..<count {
//data -- urls for the apps that the user has (for the current logged in user)
if let parsedData = data[index] as? [String: AnyObject] {
print(parsedData)
}
}
}
}