小编tek*_*kun的帖子

关闭不会在主线程中快速运行

我想在 UITableViewCell 上显示一些图像。但是我在下面遇到错误 fatal error: Index out of range。问题是闭包可能不会在主线程中运行。我该如何解决这个问题?

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "PickupTableViewCell", for: indexPath) as! PickupTableViewCell

    APIManager.getAnotherArticle{ (articles: Array<Article>?) in

        for info in articles! {
            self.authorArray.append(info.author)
            self.descriptionArray.append(info.description)
            if info.publishedAt != nil {
                self.publishedAtArray.append(info.publishedAt)
            }
            self.titleArray.append(info.title)
            self.urlArray.append(info.url)
            self.urlToImageArray.append(info.urlToImage)
            print(self.authorArray)
        }
    }

    let program = urlToImageArray[indexPath.row] //index out of range
    let urlToImage = NSURL(string: program)
    cell.pickupImageView.sd_setImage(with: urlToImage as URL!)

    return cell
}
Run Code Online (Sandbox Code Playgroud)

multithreading ios swift

1
推荐指数
1
解决办法
1739
查看次数

标签 统计

ios ×1

multithreading ×1

swift ×1