Никогда не насильственно оборачивайте опционально, пока вы не будете уверены.(Я могу также комментировать, но я хочу добавить больше деталей, которые не подходят для комментариев, так что простите)
Еще одна вещь, которую я вижу, это использовать indexPath.item
в collectionView
не indexPath.row
оба будут одинаковыми, ноэто стандарт, которому я всегда следую.
Вы не вызываете задачу URLSession.data
в фоновом потоке.всегда рекомендую это делать.Я предлагаю вам использовать стороннюю библиотеку, такую как SDWebIamge , которая поможет вам кэшировать уже загруженный образ.
Wy Crash :
Я вижу Crash из-за вашей переменной i
в вашем коде postLists[i].
ЧтоВы должны сделать
Внутри
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
Вы можете установить тег для представления своей коллекции как
cell.yourCollectionViewObject.tag = indexPath.row
и заменить
let url = postLists[i].imageUrlList![indexPath.row]
с
let url = postLists[collectionView.tag].imageUrlList![indexPath.row]
Надеюсь, это полезно