Comment puis-je enregistrer et afficher une Image avec la base de données de swift 3

Je fais un projet en Swift 3 - xcode 8, et je suis en train d'utiliser de base de données pour enregistrer et afficher des images dans une base de données de la table "utilisateurs".
Cette image est la photo de l'utilisateur dans son profil.

Maintenant, j'ai réussi à enregistrer des chaînes et de leur montrer à partir de base de données, mais je vais avoir des problèmes dans le travail avec les images.

C'est ce que j'ai à ce jour:

L'ajout d'UTILISATEURS dans la base de données

func addUser() {
    let app = UIApplication.shared.delegate as! AppDelegate
    let context = app.persistentContainer.viewContext
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
    request.returnsObjectsAsFaults = false

    let newUser = NSEntityDescription.insertNewObject(forEntityName: "Users", into: context)

    if (firstName.text == "" && lastName.text == "" && contact.text == "" && email.text == "") { //if we have a user profile delete it
        deleteUser()
    } else { //add a new user profile
        newUser.setValue(firstName.text, forKey: "firstName")
        newUser.setValue(lastName.text, forKey: "lastName")
        newUser.setValue(contact.text, forKey: "contact")
        newUser.setValue(email.text, forKey: "email")

        //newUser.setValue(imageView.image, forKey: "photo")
        //let imgUrl = UIImagePickerControllerReferenceURL as! NSURL
        let img = UIImage(named: "f.png")
        let imgData = UIImageJPEGRepresentation(img!, 1)

        newUser.setValue(imgData, forKey: "photo")

        print ("Data added in Users")
    }
    do {
        try context.save()
        //print("saved!!!")
        Alert.show(title: "Success", message: "Profile Saved", vc: self)
    } catch {
       //print ("Error")
        Alert.show(title: "Error", message: "Profile not Saved", vc: self)
    }
}

Montrer aux Utilisateurs de core data

func showUser() {
    let app = UIApplication.shared.delegate as! AppDelegate
    let context = app.persistentContainer.viewContext
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")

    request.returnsObjectsAsFaults = false

    do {
        let results = try context.fetch(request)

        if results.count > 0 {
            print("Profile: Data Found:")
            for result in results as! [NSManagedObject] {
               if let firstNameinData = result.value(forKey: "firstName") as? String{
                    firstName.text = firstNameinData
                    print(firstNameinData)
                }

                if let lastNameinData = result.value(forKey: "lastName") as? String{
                    lastName.text = lastNameinData
                    print(lastNameinData)
                }

                if let contactinData = result.value(forKey: "contact") as? String{
                    contact.text = contactinData
                    print(contactinData)
                }

                if let emailinData = result.value(forKey: "email") as? String{
                    email.text = emailinData
                    print(emailinData)
                }

                if let photoinData = result.value(forKey: "photo") as? UIImage{
                    imageView.image = photoinData
                }
            }
        } else {  //if there is not a user profile
            firstName.text = ""
            lastName.text = ""
            contact.text = ""
            email.text = ""
            print("Profile : No data found")
        }
        //print("Loaded!!!")
    } catch {
        print ("Error Loading")
    }
}

Je ne peux pas montrer l'image que j'ai enregistré.
Avez-vous des conseils?

EDIT: Xcode me donne ce message "Connexion à assetsd a été interrompu ou assetsd mort"

Vous avez enregistré (NS)Data objet de la propriété photo, pas un UIImage. Je pense que: if let photoinData = result.value(forKey: "photo") as? NSData{imageView.image = UIImage(data: photoinData);}, ou quelque chose de similaire devrait fonctionner.
Je n'ai que ça a fonctionné. merci de nice 🙂
si laisser photoinData = résultat.valeur(forKey: "photo")? NSData{ ImageView.image = UIImage(données: photoinData que Data) }
Juste une autre question: je suis l'insertion d'une image que l'utilisateur choisit son téléphone avec un imagePickerController. Comment puis-je ajouter que l'image? (Au lieu de f.png).
stackoverflow.com/questions/38291997/... ? Approche similaire?

OriginalL'auteur H.N. | 2016-10-31