2017-06-15 62 views
0

我要將圖像保存到iphone設備並從中讀取。 所以我寫了這樣的函數。如何將圖像保存到iPhone設備存儲器或從中讀取圖像?

/* 
* save image to local device 
*/ 
func saveImageToLocal(image: UIImage, fileName: String) { 
    if let data = UIImagePNGRepresentation(image) { 
     let filePath = self.getDocumentsDirectory().appendingPathComponent(fileName) 
     try? data.write(to: filePath, options: .atomic) 
    } 
} 

/* 
* get image from local device 
*/ 
func getImageFromLocal(fileName:String) -> UIImage? { 
    if let filePath = "\(self.getDocumentsDirectory())\(fileName)" as String! { 
     if let image = UIImage(contentsOfFile: filePath) { 
      return image 
     } 
    } 
    return nil 
} 

/* 
* get document directory to save/read local file 
*/ 
func getDocumentsDirectory() -> URL { 
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
    let documentsDirectory = paths[0] 
    return documentsDirectory 
} 

但它沒有正常工作。 我有這個錯誤嗎? 我該如何執行此操作? 此致敬禮。

+0

爲什麼'filePath'在保存和獲取方法中創建方式如此不同?更新get方法以像在保存方法中那樣創建它。 – rmaddy

+0

謝謝!你的幫助非常好。 – LoveCode

回答

0

您在getImageFromLocal(fileName:) -> UIImage?方法中獲得filePath時遇到問題。根據您的saveImageToLocal(image:)方法更改此方法,如下所示:

func getImageFromLocal(fileName:String) -> UIImage? { 
    let filePath = self.getDocumentsDirectory().appendingPathComponent(fileName) 
    if let image = UIImage(contentsOfFile: filePath.path) { 
     return image 
    } 
    return nil 
} 
+0

謝謝!它運作良好。 – LoveCode

相關問題