【问题标题】:Could not cast value of type '__NSCFString' (0x10d33c4a0) to 'UIImage无法将“__NSCFString”(0x10d33c4a0)类型的值转换为“UIImage”
【发布时间】:2017-11-22 17:01:10
【问题描述】:

我如何在名为 users 的路径名为 pc 的节点中表示在 firebase 存储中得分的图像。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

 let cell : viewTableViewCell = tableView.dequeueReusableCell(withIdentifier: "opa", for:indexPath) as! viewTableViewCell

    if let post =  posts[indexPath.row]  {
                    cell.post.text = post

        cell.name.text = self.loggedinuserdata!["name"]  as! String
        cell.handle.text = self.loggedinuserdata!["handle"]  as! String
        cell.pc.image = self.loggedinuserdata!["pc"]  as! UIImage

    }


 return cell

}

谢谢你的期待))

【问题讨论】:

  • pc 键的值为String 而不是UIImage
  • @NiravD 所以请我如何正确表示图像
  • 我认为您的电脑密钥包含字符串。如果 pc 键是带有 url 的字符串,那么您需要从该 url 下载图像,然后将其设置为您的 imageView。
  • @SamiulIslamSami 请你提供任何代码

标签: ios firebase swift3 uiimage firebase-storage


【解决方案1】:

首先你需要编写这个函数并将url作为参数传递

func downloadImageFromUrl(imageUrl: String, completion: @escaping (_ success: UIImage) -> Void) {

                let url = URL(string: imageUrl)
                let task = URLSession.shared.dataTask(with: url!) { data, response, error in
                guard let data = data, error == nil else { return }
                    completion(UIImage(data: data)!)

                }
                task.resume()
}

然后调用它

self.downloadImageFromUrl(imageUrl: self.loggedinuserdata!["pc"] as! String , completion: { image in

        cell.pc.image = image

  })

【讨论】:

  • 在 cellForRowaAt 方法中,您只需复制并粘贴我的第二个代码。
  • 由于 uiimageview 为空白,我如何指示正在发生的事情?
  • 你能给出一个来自 self.loggedinuserdata 的字符串吗![“pc”]。我只是想测试
  • 表示需要 SSL 才能执行此操作。
  • 你是从 Json 获取这些数据吗?
【解决方案2】:

试试这个:

    cell.pc.image = UIImage.init(named: self.loggedinuserdata!["pc"] as! String)

如果从 url 获取图片

cell.pc.sd_setImage(with: URL(string: self.loggedinuserdata!["pc"] as! String), placeholderImage: nil)

SDWebImage Source

【讨论】:

  • 错误消失但图像视图仍为空白((
  • 是服务器地址吗?
  • HTTP 方法/URL 对无效。
  • 试试我更新的答案。因为它是服务器 url 所以你需要下载图片。
  • uiimage 类型的值没有成员 sd_setimage 我有这个错误
猜你喜欢
  • 1970-01-01
  • 2017-07-01
  • 2020-08-23
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
相关资源
最近更新 更多