gpt4 book ai didi

arrays - 快速索引越界

转载 作者:行者123 更新时间:2023-11-30 13:14:42 24 4
gpt4 key购买 nike

我不明白为什么我的数组超出范围。我将提要项目放入数组“imageArray”中,它给了我 fatal error ,代码如下

   override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! BlogPost

let blogPost: BlogPost = blogPosts[indexPath.row]
cell.textLabel?.text = blogPost.postTitle
// cell.textLabel?.text = blogPost.postImageLink
if cell.postImage?.image == nil {
// let cache = ImageLoadingWithCache()
// cache.getImage(self.postImageLink, imageView: cell.postImage, defaultImage: "IMG_0079")}
if cell.postImage?.image == nil {

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {

// retrieve image from url
let image = UIImage(data: NSData(contentsOfURL: NSURL(string:self.postImageLink)!)!)
self.imageArray.append(image!)
dispatch_async(dispatch_get_main_queue(), { Void in
// set image in main thread

cell.postImage?.image = self.imageArray[indexPath.row]
})
}
} else {
cell.postImage?.image = UIImage(named: "IMG_0079")
}

}

return cell
}

具体错误在这里

 cell.postImage?.image =  self.imageArray[indexPath.row]

有什么想法吗?

最佳答案

TableView 部分中的行数必须与 imageArray 计数具有相同的值。这意味着:如果你有 10 个单元格,但只有 9 张图像,第 10 个单元格将查找不存在的第 10 个图像。

要确保错误不再出现,只需在设置单元格之前添加以下 if 语句:

if (indexPath.row < self.imageArray.count) { }

或者如 ColGraff

A guard statement would better indicate what you're doing

guard indexPath.row < self.imageArray.count else { return } 

在您的手机版本之前。

这两种解决方案应该可以避免您遇到任何麻烦。

关于arrays - 快速索引越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38363734/

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