在将图像属性附加到类对象数组时遇到麻烦

时间:2019-02-06 11:34:10

标签: arrays swift class uiimage alamofire

我正在开发与Web服务一起使用的应用程序。我已经成功获取api数据,但正在努力将其保存为类对象的数组。

我已经设置了一个类(ItemType)来保存来自api的数据,该类具有四个属性,其中之一是UIImage(var iconImage:UIImage?= nil)。我也有一个空数组(itemArray)来保存类对象。该应用程序使用Alamofire和AlamofireImage调用api。我有一个函数可以进行调用,获取JSON,使用JSON值创建there类的实例,然后将其附加到数组。

//First grab the JSON objects from the api and populate the itemArray

func getPlasticItems(url: String) {

    Alamofire.request(url, method: .get).responseJSON { response in

        if let data = response.data {

            do {
                let itemTypeJSON = try JSON(data: data)


                for (index, subJson) in itemTypeJSON {


                    let newItemType = ItemType()
                    let imagePath : String = "//someURL"
                    let imageURL: String = "\(imagePath)\(newItemType.imagFileName)"
                    newItemType.name = subJson["name"].string!
                    newItemType.id = subJson["id"].int!
                    newItemType.imagFileName = subJson["imgFileName"].string!


                    Alamofire.request(imageURL, method: .get).responseImage { response in
                        guard let image = response.result.value else {
                            // Handle error
                            return
                        }

                        newItemType.iconImage = image


                    }
                    self.itemArray.append(newPlasticType)
                    // If I try this here I get an out of index error: self.imageTester.image = self.itemArray[3].iconImage
                }

            } catch {
                print(error)
            }

        } else {
            print("Error \(String(describing: response.result.error))")
        }
        // The same here: self.imageTester.image = self.itemArray[3].iconImage
    }
}

这似乎工作正常,我可以从创建的数组访问对象的属性。除非我从调用中访问它,否则UIImage属性始终显示为nil-我通过将图像分配给名为imageTester的UIImageView进行测试。

0 个答案:

没有答案