iphone - Trying to load images from local path fails after restart in iOS -


i storing images on device code (using swift 1.2 / ios 8)

func saveimagelocally(imagedata:nsdata!) -> string{     let time =  nsdate().timeintervalsince1970     let filemanager = nsfilemanager.defaultmanager()     let dir = nssearchpathfordirectoriesindomains(.documentdirectory, .userdomainmask, true)[0].stringbyappendingpathcomponent(subdirforimage) string     if !filemanager.fileexistsatpath(dir) {         var error: nserror?         if !filemanager.createdirectoryatpath(dir, withintermediatedirectories: true, attributes: nil, error: &error) {             println("unable create directory: \(error)")             return ""         }     }      let path = dir.stringbyappendingpathcomponent("spot\(int(time)).png")      imagedata.writetofile(path, atomically: true)     println(uiimage(contentsoffile: path))     return path } 

this works good, can see image within println within finder, if observe filesystem of simulator.

after restart app within simulator (or iphone, it's same behavior) try read image this:

func loadimagefromlocalstore(path: string) -> uiimage{     if(!path.isempty){         let image = uiimage(contentsoffile: path)         if(image != nil){             return image!;         }     }     return uiimage(named: "noimage.png")! } 

but here image can't fetched. it's nil. but: path hasn't changed plus still see image within file system.

got it, problem saved path seems wrong. it's better save image-name.

this save method

 func saveimagelocally(imagedata:nsdata!) -> string{     let time =  nsdate().timeintervalsince1970     let filemanager = nsfilemanager.defaultmanager()     let dir = nssearchpathfordirectoriesindomains(.documentdirectory, .userdomainmask, true)[0].stringbyappendingpathcomponent(subdirforimage) string      if !filemanager.fileexistsatpath(dir) {         var error: nserror?         if !filemanager.createdirectoryatpath(dir, withintermediatedirectories: true, attributes: nil, error: &error) {             println("unable create directory: \(error)")             return ""         }     }      let pathtosaveimage = dir.stringbyappendingpathcomponent("spot\(int(time)).png")      imagedata.writetofile(pathtosaveimage, atomically: true)      return "spot\(int(time)).png" } 

and read method

func loadimagefromlocalstore(imagename: string) -> uiimage{     let filemanager = nsfilemanager.defaultmanager()     let dir = nssearchpathfordirectoriesindomains(.documentdirectory, .userdomainmask, true)[0].stringbyappendingpathcomponent(subdirforimage) string      let path = dir.stringbyappendingpathcomponent(imagename)      if(!path.isempty){         let image = uiimage(contentsoffile: path)         println(image);         if(image != nil){             return image!;         }     }      return uiimage(named: "noimage.png")!   } 

best christian


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -