NSPersistentDocument OSX 的正确目录
Posted
技术标签:
【中文标题】NSPersistentDocument OSX 的正确目录【英文标题】:Correct directory for NSPersistentDocument OSX 【发布时间】:2015-01-07 06:03:04 【问题描述】:我正在编写一个鞋盒类型的应用程序,其中用户将数据输入到单个窗口中。我已经使用 Code Data 配置了数据模型。 Apple 的文档指出,用户数据应存储在库目录中,但自动生成的代码似乎在应用程序支持目录中创建了一个目录,文档还指出,“不应存储用户数据”。哪个是对的? 我的另一个问题是我不应该在 applicationDidFinishLaunching 方法中创建 NSPersistentDocument 的实例吗?
【问题讨论】:
“但是自动生成的代码似乎在应用程序支持中创建了一个目录”。如果您指的是 Core Data 模板中的 cmets,不,它不会那样做。 我指的是这行代码:NSURL *appSupportURL = [[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] lastObject]; 【参考方案1】:用户创建的数据应该由用户管理:用户应该决定它们的保存位置,等等。
应用程序创建的数据确实属于应用程序支持目录。如果您的应用程序在没有用户干预的情况下创建了 NSPersistentDocument,那么这将是存储它的正确位置。例如,如果您使用 NSPersistentDocument 来管理应用程序数据,那么它将属于沙盒目录,例如 NSApplicationSupportDirectory。
File System Programming Guide 对此进行了更详细的介绍。
【讨论】:
这是有道理的。谢谢以上是关于NSPersistentDocument OSX 的正确目录的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSPersistentDocument 创建“文档”
创建持久存储时 NSPersistentDocument 崩溃
NSPersistentDocument:浏览版本:尝试添加只读文件