Ich habe diesen Aufruf api Funktion aufzurufen versuchen:Array leer zurück, wenn von außerhalb der Funktion [swift]
func searchResults(){
let urlString = "http://dev.jocom.com.my/feed"
Alamofire.request(.POST, urlString , parameters: ["req" : "pro_name", "code" : searchString!])
.responseData { response in
switch response.result {
case .Success:
let apiSearchXML = SWXMLHash.parse(response.data!)
for elem in apiSearchXML["rss"]["channel"]["item"]{
self.imageURL.append(elem["thumb_1"].element!.text!)
self.name.append(elem["name"].element!.text!)
}
print(self.name)
case .Failure(let error):
print(error)
}
}
}
Es scheint ok, wenn ich den Ausgang aus drucken, wobei die Anordnung seiner enthält etwas. Aber wenn ich versuche, es aufzurufen, um es in meiner Sammlungsansicht anzuzeigen, gibt es keine Zeile zurück, und es wird leer, warum ist es?
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.name.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SearchResultsCollectionViewCell
cell.titleLabel.text = "abc"
cell.setNeedsDisplay()
return cell
}
Die Alamofire Readme erwähnt ausdrücklich, dass die Anforderung ausgeführt werden * asynchron *. Sehen Sie sich die häufig gestellten [alamofire] Fragen an: Diese wurden wiederholt gestellt und beantwortet. –