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 崩溃

NSPersistentDocument:浏览版本:尝试添加只读文件

如何为 NSPersistentDocument 窗口赋予标题

撤消麻烦:以编程方式初始化`NSPersistentDocument`,标题栏中没有“已编辑”标志