Swift 3保存从相机拍摄的图像,并将路径保存到数据库中

Swift 3保存从相机拍摄的图像,并将路径保存到数据库中,swift,xcode,swift3,uiimagepickercontroller,phphotolibrary,Swift,Xcode,Swift3,Uiimagepickercontroller,Phphotolibrary,我可以用手机拍摄照片并将其保存在gallery中,但我不知道如何保存图片的路径,因此在我可以从gallery中检索图片后(我还不知道如何通过他的路径检索图片),将其显示在我的控制器上 我有这个代码,它工作得很好。我可以在gallery上看到我保存的图像,但我不知道如何获取他的url,我想保存在coredata上 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo i

我可以用手机拍摄照片并将其保存在gallery中,但我不知道如何保存图片的路径,因此在我可以从gallery中检索图片后(我还不知道如何通过他的路径检索图片),将其显示在我的控制器上

我有这个代码,它工作得很好。我可以在gallery上看到我保存的图像,但我不知道如何获取他的url,我想保存在coredata上

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    imagePicker.dismiss(animated: true, completion: nil)
    exerciceImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    exerciceImage.isHidden = false;

    UIImageWriteToSavedPhotosAlbum(exerciceImage.image!, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
}
func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
    if let error = error {
        // we got back an error!
        let ac = UIAlertController(title: "Save error", message: error.localizedDescription, preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        present(ac, animated: true)
    } else {
        let name = image.accessibilityIdentifier;

        let ac = UIAlertController(title: "Saved!", message: "Your altered image has been saved to your photos.", preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        present(ac, animated: true)
    }
}
我读到我可以使用PHPhotoLibrary,但它给了我一个错误,它不能转换到nsurl 这是我试过的

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    imagePicker.dismiss(animated: true, completion: nil)
    exerciceImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    exerciceImage.isHidden = false;

    PHPhotoLibrary.shared().performChanges({
        let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(atFileURL: info[UIImagePickerControllerOriginalImage] as! URL)
        let assetPlaceholder = assetRequest?.placeholderForCreatedAsset
    }, completionHandler: { success, error in
        // completion handling
        let url = info[UIImagePickerControllerOriginalImage] as! URL;
    })
} 
我找到了解决办法 但我编辑它是因为在应用程序关闭后无法加载图像,下面是我的解决方案,希望它能帮助其他人:)

为了获取我刚刚保存的图像,我使用了这个函数

public static func fetchData(nameImage : String) -> UIImage{

    let docDir = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    let filePath = docDir.appendingPathComponent(nameImage);

    if FileManager.default.fileExists(atPath: filePath.path){
        if let containOfFilePath = UIImage(contentsOfFile : filePath.path){
            return containOfFilePath;
        }
    }
    return UIImage();

}
public static func fetchData(nameImage : String) -> UIImage{

    let docDir = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    let filePath = docDir.appendingPathComponent(nameImage);

    if FileManager.default.fileExists(atPath: filePath.path){
        if let containOfFilePath = UIImage(contentsOfFile : filePath.path){
            return containOfFilePath;
        }
    }
    return UIImage();

}