升级到 Xcode 7 后无法写入文档目录

Posted

技术标签:

【中文标题】升级到 Xcode 7 后无法写入文档目录【英文标题】:Unable to Write to Documents Directory after upgrading to Xcode 7 【发布时间】:2015-09-20 22:06:09 【问题描述】:

升级到 Xcode 7 后,我尝试重新运行我的应用程序,但现在出现以下错误:

您无权将“PDF”文件保存在“Documents”文件夹中。

我无法弄清楚问题是什么,请有人帮忙。我已经尝试过清除派生数据并清理我的项目。

我看到了这个帖子,但没有一个解决方案有帮助 -> Error while build project Xcode says: "you don't have permission"

已更新 - 这是我的代码:

var docsDirNew: NSURL!
var currentPath: String!

docsDirNew = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]

let unknown = docsDirNew.URLByAppendingPathComponent(dirPath)
currentPath = "\(unknown)"


var error: NSError?

    do 
        try filemgr.createDirectoryAtPath(currentPath, withIntermediateDirectories: true, attributes: nil)

        Scripts.logClass(className, message: "fileOperationsCreateDirectory >> CREATE Directory SUCCESS")
    
    catch let error1 as NSError 

        error = error1

        Scripts.logClass(className, message: "fileOperationsCreateDirectory >> CREATE Directory FAILED >> \(error!.localizedDescription)")
    

【问题讨论】:

用您的代码更新您的问题,以获取 Documents 文件夹引用并尝试向其中写入文件。 【参考方案1】:

这一行:

currentPath = "\(unknown)"

应该从来没有工作过。应该是:

currentPath = unknown.path

您的原始代码依赖于NSURL description 方法的任意实现。

【讨论】:

说实话,我最初并没有那条线。我刚刚添加它试图调试为什么我的程序在升级到 XCode 7 后崩溃,因为我注意到 stringByAppendingPathComponent 已被弃用。无论哪种方式,非常感谢您的帮助,因为该线路有效。现在我知道用什么来获取路径的字符串值了。

以上是关于升级到 Xcode 7 后无法写入文档目录的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Xcode 10.0 后无法构建模块“UIKit”

升级到 Xcode 10 后,无法快速识别 Objective C 类

升级到 Xcode 4.2 和 iOS5 后,应用程序无法在 iPhone 上运行

升级到 iOS 9 和 MobileFirst 7.1 后无法登录设备或模拟器上的应用程序

升级到 Xcode 6 Beta 7 现在得到:文件 info.plist 无法打开,因为没有这样的文件

UITabbar 项目不显示,直到单击升级到 Xcode 7