这是屏幕截图,因为你可以看到它显示错误,因为我强制解开和一些网址是空的:
如何安全地解包此URL,以便不必强制解包?
代码:
func tableView (_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int
{
return players.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier:
Reusable.reuseIdForMain) as! CustomCell
cell.nameLabel.text = players[indexPath.row].name
cell.otherInfo.text = players[indexPath.row].otherInfo
if let url = players[indexPath.row].imageUrl{
cell.profileImage.load.request(with: URL(string:url)!)
}
return cell
}
4条答案
按热度按时间jjjwad0x1#
在检查字符串之后,您应该检查URL本身的值。这样两个字符串都将安全地展开。
shstlldc2#
你可以试试这个
cu6pst1q3#
托马斯·森格尔的方法是最容易和最简单的;不过......
有时我的collectionView中的图像不会加载(失败的if-let的ELSE部分),即使模型下载(从Firebase)的url字符串刚刚好。
原因是某些URL在URL字符串中有空格,Apple方法URL(字符串:)无法正确处理(Apple应该更新它)。要解决这个问题,请找到/编写一个更好的方法来将字符串转换为URL类型,或者将空格替换为%20. literally.““-〉“%20”,然后再替换为URL(string:)不会使防护条件失效。
vkc1a9a24#
使用下面的代码,也将解决您的问题,加载一个图像在纳秒内尝试这个
用途