ios - 如果我将使用Swift 3再次运行该应用程序,则该图像在文档目录中不存在

标签 ios image swift3 nsdocumentdirectory

我正在将相机图像保存到我的文档目录中。我正在util类中创建一个文档目录。这是我的代码:-

//Get Document Directory Path
func getDirectoryPath() -> String {
  let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("Phss")
  return paths
}

//Create Directory
func createDirectory(){
  let fileManager = FileManager.default

  let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("Phss")

  if !fileManager.fileExists(atPath: paths){
    try! fileManager.createDirectory(atPath: paths, withIntermediateDirectories: true, attributes: nil)
  }

  else{
    Helper.sharedInstance.Print("Already dictionary created." as AnyObject)
  }
}   

之后,我将按名称和一些值(docAddedTime)保存图像,并将路径(imagePath)存储在我的核心数据DB中。
func saveImageDocumentDirectory(imageData : Data, docName : String) -> String {
    let fileManager = FileManager.default
    let imagePAth = (getDirectoryPath() as NSString).appendingPathComponent("\(String(describing: docAddedTime!) + "_" + "\(String(describing: docName))").png")

    fileManager.createFile(atPath: imagePAth, contents: imageData, attributes: nil)
    return imagePAth
}.   

我正在按保存在本地核心数据数据库中的图像路径获取图像。
let fileManager = FileManager.default
    let imagePAth = doc!.docPath! //Core Data DB Path of image

    if fileManager.fileExists(atPath: imagePAth) {
         imgView.image = UIImage(contentsOfFile: imagePAth
       }

问题是我第一次能够获取图像并显示在我的imageView中,但是之后我将再次运行该应用程序,并且尝试通过存储在我的核心数据数据库中的此imagePath来获取图像,然后它没有给出该文件存在于这条路。

图像存在于同一路径,但没有显示。我不确定为什么会这样。

最佳答案

每次从Xcode构建应用程序时,都会创建一个新文件夹,并且文件将位于新文件夹中。

不要重建应用程序,只需从模拟器关闭应用程序,然后从模拟器本身重新启动应用程序即可。

您文件的完整路径如下:

file:///Users/username/Library/Developer/CoreSimulator/Devices/4FA96815-521B-4D84-B5C7-10697DE1908B/data/Containers/Data/Application/54CC678C-7E96-4DB6-83CC-6ECB506DC9BF/Documents/tmp.png

在下一个版本中:
Application/54CC678C-7E96-4DB6-83CC-6ECB506DC9BF/Documents/

将更改为:
Application/3F3093C6-2140-473B-8F99-A717AF162CDE/Documents/

Xcode创建3F3093C6-2140-473B-8F99-A717AF162CDE的地方不是你

关于ios - 如果我将使用Swift 3再次运行该应用程序,则该图像在文档目录中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950481/

相关文章:

ios - 应用程序在设备上崩溃但在模拟器中没有崩溃 :[UITableViewController loadView] loaded the "XXXViewController" nib but didn't get a UITableView. '

ios - 后置摄像头在 Swift 中无法正常工作

css - 无法让背景标题图片适合宽度.. 什么都试过了

swift3 - 1. CGPathMoveToPoint' 不可用 : Use move(to:transform:) 2. 'CGPathAddLineToPoint' 不可用:使用addLine(to:transform:)

ios - 在 ViewController 上显示 SVProgressHUD?

swift - 为什么我的数据初始化器没有产生预期的结果?

android - 将应用程序转移到我在 Play 商店和 App Store 中的开发者帐户

objective-c - 尝试调用 [super didReceiveMemoryWarning] 时崩溃

python - 我收到错误 : np.append(Image()) TypeError: __init__() 缺少 1 个必需的位置参数: 'imgtype'

javascript - 在随机位置定位图像