comment charger une image à partir d'un chemin local ios swift (par voie)

Dans mon application je suis de stocker une image dans le stockage local et je sauve le chemin de l'image dans ma base de données. Comment puis-je charger l'image de ce chemin?

Ici c'est le code que j'utilise pour enregistrer l'image:

 let myimage : UIImage = UIImage(data: data)!
            let fileManager = NSFileManager.defaultManager()
            let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
            let documentDirectory = urls[0] as NSURL


            print(documentDirectory)
            let currentDate = NSDate()

            let dateFormatter = NSDateFormatter()
            dateFormatter.dateStyle = .NoStyle
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
            let convertedDate = dateFormatter.stringFromDate(currentDate)
            let imageURL = documentDirectory.URLByAppendingPathComponent(convertedDate)
            imageUrlPath  = imageURL.absoluteString
            print(imageUrlPath)
            UIImageJPEGRepresentation(myimage,1.0)!.writeToFile(imageUrlPath, atomically: true)

Et c'est le chemin où mon image stockée

file:///var/mobile/Containers/Data/Application/B2A1EE50-D800-4BB0-B475-6C7F210C913C/Documents/2016-06-01%2021:49:32

C'est la façon dont j'ai essayé de récupérer l'image, mais il n'est pas afficher quoi que ce soit.

let image : String = person?.valueForKey("image_local_path") as! String
        print(person!.valueForKey("image_local_path")! as! String)
        cell.img_message_music.image = UIImage(contentsOfFile: image)
  • Cette ligne: imageUrlPath = imageURL.absoluteString doit être imageUrlPath = imageURL.path
  • Par ailleurs, vous ne devez pas prendre data, de les convertir en un UIImage, puis le reconvertir en un NSData avec UIImageJPEGRepresentation. Il suffit d'enregistrer l'original data.
  • Double Possible de UIImage(contentsOfFile:) retour néant malgré fichier existant dans les caches de l'annuaire
  • J'ai été dans le même scénario, sachez que votre B2A1EE50xx dossier change chaque fois que vous exécutez/construire/mettre à jour votre application comme @zsyesenko dit ci-dessous. Donc, vous devez écrire à imageUrl de ne pas imageUrlPath et enregistrez le nom de votre fichier (convertedDatesur votre cas) n'est pas le chemin
InformationsquelleAutor Jack.Right | 2016-06-01