从图像路径iOS Swift加载图像时出现问题

时间:2016-02-27 21:07:02

标签: ios swift uiimageview

我正在尝试这个:

    if let storedCoverImagePath = UC.coverImagePath{
    let storedCoverImage    = UIImage(contentsOfFile: storedCoverImagePath as String)
        self.coverImage.image = storedCoverImage
        self.backgroundImageView.image = storedCoverImage
}

并且storedCoverImagePath的值为:

/Users/remy/Library/Developer/CoreSimulator/Devices/D29D4F6F-E146-419D-B4B8-B1914F56569F/data/Containers/Data/Application/637675BB-EFA1-A8RT-8B73-A3628/DocumentsCoverImage.jpg

直截了当地试图从这条storedCoverImagePath路径获取图像。我仔细检查了路径,图像仍然无法使用此路径设置图像,是否有一些东西可以丢失,如果是,请告诉我

1 个答案:

答案 0 :(得分:0)

您必须指定相对于您的应用包或目录的路径。如果你像你一样对路径进行硬编码:

  

/Users/remy/Library/Developer/CoreSimulator/Devices/D29D4F6F-E146-419D-B4B8-B1914F56569F/data/Containers/Data/Application/637675BB-EFA1-A8RT-8B73-A3628/DocumentsCoverImage.jpg

由于沙盒而被忽略。 iOS不允许该应用引用沙箱外部的目录。

可能的解决方案

使其工作的一种方法是将图像添加到项目中。然后你可以使用:

let image : UIImage = UIImage(named:"ImageName")

另一种方法是,如果图像保存在应用的文档目录中,则使用:

let documentsURL  = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let fileURL = documentsURL.URLByAppendingPathComponent(yourImageName)
let image = UIImage(contentsOfFile: fileURL.path!)