PB chargement de fichier image

Bonsoir,

Voilà le code

        if let urlImage = URL(string: donnesGlobales[indexPath.section][indexPath.row].PHOTO_) {
            URLSession.shared.dataTask(with: urlImage){data, response, error in
                print("data urlsession =",urlImage ,"\n", data as Any)
                print(error)
            }.resume()
            do {
                let photo : NSData = try NSData(contentsOf: urlImage )
                //print(photo)
                cell.monEtiquette.image = UIImage(data: photo as Data)
            }catch{
                cell.monEtiquette.image = UIImage(named: "Ca.png")
            }            
        }else {
            cell.monEtiquette.image = UIImage(named: "Ca.png") }

Alors tout fonctionne impeccable si l’app tourne uniquement sur le device.

Par contre lorsque je relance à partir de Xcode bouton play ou Control R et ben monsieur swift me dis qu’il y a une erreur

Optional(Error Domain=NSURLErrorDomain Code=-1100 “L’URL demandée est introuvable sur ce serveur.” UserInfo={NSUnderlyingError=0x1c0250f20 {Error Domain=kCFErrorDomainCFNetwork Code=-1100 “(null)”}, NSErrorFailingURLStringKey=file:///private/var/mobile/Containers/Data/Application/4B399887-14E9-466C-8950-B3D67763302E/tmp/4875FF79-8948-4B51-AF9B-47482B86AA10.png, NSErrorFailingURLKey=file:///private/var/mobile/Containers/Data/Application/4B399887-14E9-466C-8950-B3D67763302E/tmp/4875FF79-8948-4B51-AF9B-47482B86AA10.png, NSLocalizedDescription=L’URL demandée est introuvable sur ce serveur.})

Je vous avoue que j’ai cherché pas mal de solution, mais là je bloque. Ce n’est pas très gênant dans le fonctionnement habituel de l’app, mais à chaque fois que je fais une modification de programmation, il faut que je me retape le chargement en manuel de toutes les photos.

Merci pour votre aide.

Gliou

L’erreur te dis que l’image n’existe pas sur le serveur en question. Tu es certain de ton URL ? Est-ce qu’il s’agit d’une URL https ou http? Car si c’est une HTTP tu dois désactiver App Transport Security globalement ou faire une exception pour les urls non sécurisées.
De plus, tu utilises URLSession pour télécharger les données mais tu ne te sers pas du résultat et tu les retélécharges avec l’objet NSData (mais ça n’est pas lié à ton problème)

Oui en effet je n’utilise pas le data de URLSession car j’ai fait des essais avec plusieurs fonctions pour trouver une solution, et en effet ce n’est pas lié au problème.

Les photos sont téléchargées à partir de .photoLibrary . Je sauvegarde l’url de limage dans une variable et ensuite dans core data. Là aussi tout semble fonctionner puisque quand je lis la données que je sauvegarde ou que je ressort de core data l’url est là même.

URL :

Je le redit tout fonctionne nickel à partir de l iPhone ou de la l IPad, j’arrête l’app, j’éteints le device je le rallume, je relance l’appli les images sont téléchargées sans problème.

C’est juste lorsque que j’utilise Build and then run the current scheme, bouton play de Xcode que ça bug et à ce moment là que URLSession ou try NSDara ne parvient pas au fichier citer dans l url.

:slight_smile:

Tu veux dire que ça ne marche pas au premier lancement mais uniquement pour les suivants ?
Ou alors ça ne marche que sur un vrai appareil et pas sur un simulateur ?

Ca fonctionne sur mon iPad ou sur un simulateur…ce n’est que lorsque je reload l’app à partir de Xcode (command + r) que les images ne sont pas reload. Il faut que l’utilisateur les re-enregistres.