Я использовал файл .xib для создания нескольких UICollectionView
/ UITableview
в пределах одного UIViewController
, он отлично работал с фиктивными данными.Но теперь я хочу интегрировать API в .nib.Я сталкиваюсь с проблемой, что мой getDataForBannerImage()
выполняется, но он должен вернуть bannerImageModel
из службы, но он всегда возвращает 0 count bannerImageModel Я не могу исправить проблему, пожалуйста, помогите мне
class BannerImageStatus: Decodable {
let status: String
let error: Bool
let data: [BannerImageModel]
init(status: String, error: Bool, data: [BannerImageModel]) {
self.status = status
self.error = error
self.data = data
}
}
class BannerImageModel: Decodable {
var id: String
var name: String
var image: String
var url: String
var status: String
var created_at: String
init(id: String, name: String, image: String, url: String, status: String, created_at: String) {
self.id = id
self.name = name
self.image = image
self.url = url
self.status = status
self.created_at = created_at
}
}
class BannerImageService {
var bannerImageModel = [BannerImageModel]()
func getDataForBannerImage() -> [BannerImageModel] {
Alamofire.request("http://abcd/Homeapi/banner/format/json/").responseJSON{ response in
if let locationJSON = response.result.value as? [String: Any] {
let data = locationJSON["data"] as! [[String: Any]]
for dataItem in data {
let bannerModel = BannerImageModel(id: dataItem["id"] as! String, name: dataItem["name"] as! String, image: dataItem["image"] as! String, url: dataItem["url"] as! String, status: dataItem["status"] as! String, created_at: dataItem["created_at"] as! String)
self.bannerImageModel.append(bannerModel)
print(bannerModel.url + bannerModel.image)
}
}
}
return bannerImageModel
}
Теперь, когдаЯ вызываю службу из класса .xib, всегда bannerImageModelArray.count, давая 0 из-за этой проблемы. Я не могу вызвать представление моей коллекции.