Ich habe einen Endpunkt, sagen wir: "http://somthing.com/api/ios". Ich hole JSON von diesem Endpunkt.Wie verarbeitet man die Antwort von einer API, bevor die Antwort von UICollection Datasource gelesen wird?
Ich rufe die API in viewWillAppear
Methode.
func viewWillAppear(animated: Bool)
{
super.viewWillAppear(true)
Alamofire.request(.GET, url)
.responseJSON { response in
if let JSON = response.result.value
{
self.receiveData = JSON as! [String : AnyObject]
}
}
}
Hier dumping ich die Daten in der lokalen Variablen.
Und das ist UICollectionView
Datenquelle, die bricht, weil receiveData
ist leer oder ein anderes Problem ist da.
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
switch collectionView.tag
{
case 0:
return (receiveData["x"]?.count)!
case 1:
return (receiveData["y"]?.count)!
case 2:
return (receiveData["z"]?.count)!
default:
return 0
}
}
ich die Collectiondatasource bin Verdacht wird zuerst genannt, bevor receiveData
bevölkert wird.
Kann jemand sagen, wo ich falsch liege oder gibt es eine andere Problemumgehung?
EDIT 1: Anbringen des Screenshot des Fehlers:
Eigentlich ist meine Sammlung Ansicht in einer Tablview-Zelle. Anstatt die Sammlungsansicht neu zu laden, lade ich die Tablview, die du erwähnt hast, neu und rufe die Methode collectionview.reloadData() in der Methode willDisplayCell auf. Trotzdem bekomme ich denselben Fehler. –