Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法转换类型为';[字符串]?';到预期的参数类型';字符串?';在swift中显示结构中的图像时_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

无法转换类型为';[字符串]?';到预期的参数类型';字符串?';在swift中显示结构中的图像时

无法转换类型为';[字符串]?';到预期的参数类型';字符串?';在swift中显示结构中的图像时,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我正在swift中开发一个应用程序,它显示图像(就像YouTube缩略图),点击后,会将您发送到带有“子帖子”的视图控制器,这些“子帖子”是多个图像,解释如何一步一步完成某件事(使用图像)。我已经完成了缩略图功能,单击缩略图后,它会将您发送到“子帖子”视图。现在我必须将所有“子帖子”添加到collectionview。我似乎不明白这一点,因为我使用的是struct而不是class子帖子,因为我在上传时是如何保存子帖子的。可能会让人困惑。如果不清楚,请让我知道,我会进一步解释。这就是我想到的: s

我正在swift中开发一个应用程序,它显示图像(就像YouTube缩略图),点击后,会将您发送到带有“子帖子”的视图控制器,这些“子帖子”是多个图像,解释如何一步一步完成某件事(使用图像)。我已经完成了缩略图功能,单击缩略图后,它会将您发送到“子帖子”视图。现在我必须将所有“子帖子”添加到
collectionview
。我似乎不明白这一点,因为我使用的是
struct
而不是
class
子帖子,因为我在上传时是如何保存子帖子的。可能会让人困惑。如果不清楚,请让我知道,我会进一步解释。这就是我想到的:

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
    }

}
这是
collectionView
功能:

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.downloadImage(从:self.subposts[indexPath.row].pathToImage)
错误为:

无法将类型“[String]”的值转换为预期的参数类型“String”

我似乎无法理解这一点。非常感谢您的任何帮助!
提前谢谢

您声明为可选字符串数组
路径图像:[string]?
,但随后尝试将其视为可选字符串。这是行不通的,错误消息指出了这一点

您需要在代码中指明要传递给
downloadImage
的数组中的哪个字符串。例如:

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

奇怪的是没有显示任何图像。这会是什么?我是否应该显示任何特定的文件或类似的内容?如果错误消息消失,则表明您正在处理新问题。我建议在调试器中单步执行代码,并检查每个变量的值是否与您期望的值匹配。我想您是对的,我无法使它在我的项目中真正起作用,因为还有另一件事阻止它起作用。我会投票并打正确的分数,因为答案是正确的。但你要知道,我的问题还没有解决。
cell.subPostImage.downloadImage(from: self.subposts[indexPath.row].pathToImage![0])