Ios 从url下载图像并存储到Swift中的照片库中

Ios 从url下载图像并存储到Swift中的照片库中,ios,iphone,swift,Ios,Iphone,Swift,从URL下载图像并显示到表视图中,当我选择图像时,它将存储到照片库中。我已成功地从URL获取图像并显示到表视图,但在选择图像后无法将其存储到照片库中 这是我的代码: var parsingdata = [Datavalues]() func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = Tableview.dequeueR

从URL下载图像并显示到表视图中,当我选择图像时,它将存储到照片库中。我已成功地从URL获取图像并显示到表视图,但在选择图像后无法将其存储到照片库中

这是我的代码:

var parsingdata = [Datavalues]()

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = Tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell
    let row = indexPath.row
    let cellvalues = parsingdata[row] as Datavalues
    cell.CategoryImage.downloadImageFrom(link: cellvalues.categoryImage, contentMode: .scaleToFill)
    cell.categoryName.text = cellvalues.categoryName
    cell.IDLabel.text = String(cellvalues.id)
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let indexPath = tableView.indexPathForSelectedRow!

    let imagestring = String(parsingdata[indexPath.row].categoryImage)

//Image add name is stored into the imagestring 

    let documentsDirectoryURL = try! FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    let fileURL = documentsDirectoryURL.appendingPathComponent("Savedframe.png")
    if !FileManager.default.fileExists(atPath: fileURL.path) {
        do {
            try UIImagePNGRepresentation(imagestring)!.write(to: fileURL)
            print("Image Added Successfully")
        } catch {
            print(error)
        }
    } else {
        print("Image Not Added")
    }
}

我哪里做错了?我的目标是从url下载图像,在选择图像时将其存储到照片库中。

尝试此操作,在
didSelectRowAt
方法中,将您的
图像
字符串转换为
url
,并将其转换为
数据
,一旦图像被创建为
数据
,然后按如下方式保存

如果您的图像尺寸过大,则需要在
后台线程中将
URL
转换为
数据
,并在
主线程中将
图像
保存到
photosAlbum

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let imagestring = String(parsingdata[indexPath.row].categoryImage)

    if let url = URL(string: imagestring),
        let data = try? Data(contentsOf: url),
        let image = UIImage(data: data) {
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
    }
}

尝试此操作,在
didSelectRowAt
方法中,将
图像
字符串转换为
URL
,并将其转换为
数据
,一旦图像创建为
数据
,然后按如下方式保存

如果您的图像尺寸过大,则需要在
后台线程中将
URL
转换为
数据
,并在
主线程中将
图像
保存到
photosAlbum

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let imagestring = String(parsingdata[indexPath.row].categoryImage)

    if let url = URL(string: imagestring),
        let data = try? Data(contentsOf: url),
        let image = UIImage(data: data) {
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
    }
}

本地驱动器意味着在
Photos
app中?你想在本地保存图像吗?你试过检查@Pankil的这个可能的副本吗?是的,它像我们的galleryUIImageWriteToSavedPhotosAlbum(uiimge,nil,nil,nil)本地驱动器意味着在
Photos
app中?你想在本地保存图像吗?你试过检查@Pankil的这个可能的副本吗?是的,它像我们的galleryUIImageWriteToSavedPhotosAlbum(uiimge,nil,nil,nil)此解决方案有效,但只是一个提醒,您需要将此密钥添加到您的
Info.plist
中,并提供此方法有效的说明。此解决方案有效,但只是一个提醒,您需要将
NSPhotoLibraryAddUsageDescription
此密钥添加到
Info.plist
中并提供此方法的工作说明。