2015-12-29 77 views
1

我在Swift中遇到了問題。 我嘗試加載存儲在DocumentsDirectory中的圖像,但它返回nil。UIImage返回零,但存在

下面是代碼:

if NSFileManager.defaultManager().fileExistsAtPath(url!.path!) { 
    //show image 
    print("Image " + key + " exists") 
    if let image = UIImage(contentsOfFile: url!.path!){ 
     return image 
    } 
    else { 
     print("error image") 
     return nil 
    } 
} 

我總是得到「錯誤圖像」,但該文件存在。我不明白這個問題。

感謝,

亨利

+0

不要使用強制解包,你打開門崩潰,如果你使用。 – Cristik

+0

好的,但它仍然不加載圖像.. – user3900157

回答

2

我已經重寫你的代碼到它自己的功能,這樣你就可以不必更改你的代碼太多了測試。它適用於我,這導致我懷疑您的路徑設置不正確,或者您的代碼無法通過您提供的路徑訪問它所訪問的文件來創建映像。下面的功能會告訴你,如果該文件不存在 UIImage無法創建圖像。

您需要隔離發生錯誤的位置並從那裏開始。

func getImage(url: NSURL) -> UIImage? { 

    var image : UIImage? 

    if let path = url.path { 
     if FileManager.default.fileExists(atPath: path) { 
      if let newImage = UIImage(contentsOfFile: path) { 
       image = newImage 
      } else { 
       print("getImage() [Warning: file exists at \(path) :: Unable to create image]") 
      } 

     } else { 
      print("getImage() [Warning: file does not exist at \(path)]") 
     } 
    } 

    return image 
} 
+0

謝謝。這是我得到的:**/Users/henry/Library/Developer/CoreSimulator/Devices/D475A874-0BCE-4BA7-9473-4FAAD866A52C/data/Containers/Data/Application/DC1C544D-EA34-4C5E-AE44-A6772FD1A44D/Documents /users/facebook_10153298923695141/PP_IMG_1450308308581.jpg ::無法創建圖像] ** – user3900157

+1

因此,您現在知道圖像上有些東西了。我會去看看圖像文件,並通過其他應用程序確認它是否有效 - 即在Preview中打開它:) –

+0

如何檢查Xcode中的圖像?它是從互聯網下載的圖像,發生變化..我無法在「設備」窗口中看到模擬器的內容。 – user3900157