如何使用swift将图像字符串转换为url?当我将字符串转换为URL时,我在URL中获取nill值

时间:2017-12-28 05:42:53

标签: swift

我正在将图片字符串转换为URL,但是当我转换它时,我在URL中获取nill vaalue。 这是我的代码:

func tableView(_ tbldata: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                let cell = tbldata.dequeueReusableCell(withIdentifier: "ServiceCheckCell", for: indexPath) as! ServiceCheckTableViewCell
               cell.selectionStyle = .none

    //save image in imagestr
               let imagestr = (self.data[indexPath.row] as AnyObject).value(forKey:"service_image") as? String

                let URLString = imagestr
    //convert URLSting into URL
                let URL = NSURL(string: URLString!)
                cell.service_image.hnk_setImageFromURL(URL! as URL )

                return cell
            }

1 个答案:

答案 0 :(得分:0)

将字符串转换为URL的正确方法是

let url = URL(string: URLString)

不要像上面那样使用NSURL,它应该仍然可以工作,但最好使用URL,因为它是一个结构,并且使用线程更安全。

但是,如果URLString无法形成有效的URL

,则仍然可以返回nil
  

如果无法使用字符串形成URL,则返回nil(例如,如果   该字符串包含在URL中非法的字符,或者是   空字符串)。

所以你可以使用诸如

之类的东西
if let url = URL(string: URLString) {
  cell.service_image.hnk_setImageFromURL(URL! as URL ) 
} else {
   // fix your string perhaps it needs percent encoding
  fatalError("Check your source data")
}