gpt4 book ai didi

ios - 在将项目附加到数组之前从数组中读取(崩溃)

转载 作者:行者123 更新时间:2023-11-28 08:55:35 25 4
gpt4 key购买 nike

我设置的类初始化下:

var cardsCover = [PFFile]()

我有两个功能。其中之一从 Parse.com 数据中获取并将其附加到数组中:

     let cards = PFQuery(className: "cards")
cards.whereKey("category", equalTo: "Fruits")

cards.findObjectsInBackgroundWithBlock { (cards: [PFObject]?, error: NSError?) -> Void in
if error == nil {
for card in cards! {
self.cardsCover.append(card["cover"] as! PFFile)
}
} else {
print("error")
}
}

第二个函数从这个 cardsCover 数组中获取并显示项目:

self.cardsCover[self.cardIndex].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if imageData != nil {
let image = UIImage(data: imageData!)
let imageView = UIImageView(image: image!)
contentView.addSubview(imageView)
} else {
print(error)
}
}

但是当我启动我的应用程序时,它首先尝试显示空数组中的图像,而不是将项目附加到数组,然后再从中读取。所以,它崩溃了。

我将断点设置到我的第二个函数的第一行,当我输入时:

po cardsCover

它返回 0 个元素

我怎样才能解决这个问题并首先将项目附加到我的数组,然后再从中读取它们?

最佳答案

首先,从数组中获取元素时,始终对数组大小进行安全检查以避免崩溃。

其次,您需要确保从 cardsCover 读取数据的函数总是在调用数据设置函数之后被调用。您在数据提取器中有一个完成 block ,您可以在其中触发数据提取器。您还可以实现 delegate 回调或在数据下载完成后发布通知,以便随后开始使用数据。

关于ios - 在将项目附加到数组之前从数组中读取(崩溃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com