Почему я получаю: «Не удается преобразовать значение типа '[String]?" к ожидаемому типу аргумента "String?" - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над приложением с swift. Я загружаю представление коллекции с изображениями из Firebase.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "subPostCell", for: indexPath) as! SubPostCell

    cell.subPostImage.downloadImage(from: self.subposts[indexPath.row].pathToImage)

    return cell
}

Выдает ошибку в строке cell.subPostImage:

Невозможно преобразовать значение типа '[String]?' к ожидаемому типу аргумента 'String?'

Это мой объект подпоста:

import Foundation

struct SubPost: Decodable {
    var pathToImage: [String]?
    var postID: String!
    var userID: String!

    init(pathToImage: [String]? = nil, postID: String? = nil, userID: String? = nil) {
        self.pathToImage = pathToImage
        self.postID = postID
        self.userID = userID
    }

}

Это код моей подпосты:

import UIKit

class SubPostCell: UICollectionViewCell {

    @IBOutlet weak var stepLabel: UILabel!
    @IBOutlet weak var subPostImage: UIImageView!

}

Что я делать неправильно?

1 Ответ

0 голосов
/ 22 апреля 2020

В соответствии с вашим кодом pathToImage имеет несколько URL-адресов. Поэтому вам нужно получить указанный c URL-адрес и загрузить его

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "subPostCell", for: indexPath) as! SubPostCell
        if pathToImage.count > 0 {
            cell.subPostImage.downloadImage(from: self.subposts[indexPath.row].pathToImage[0])
        }

    return cell
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...