Я не могу понять, почему мой массив находится за пределами границ. я помещаю элементы подачи в массив «imageArray», и это дает мне фатальную ошибку Heres кодиндекс за пределами swift
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]
какой-либо идеи?
попробуйте использовать это расширение UIImageView http://stackoverflow.com/questions/24231680/loading-downloading-image-from-url-on-swift/27712427#27712427 –
Я собираюсь угадать, потому что 'indexPath' является когда закрытие создается, а затем к тому времени, когда замыкание называется 'indexPath.row', является устаревшим и выходит за пределы. Не говоря уже о том, что вы сильно разворачиваетесь, если некоторые из этих «Факультативных» не установлены? Проверьте и разверните их правильно! – ColGraff