问题标签 [nspersistentdocument]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 用种子对象填充新的 NSPersistentDocuments / 关闭时丢弃更改
这是我的问题:
我有一个基于文档的应用程序,全部使用 Core Data 编写。创建新文档时(在应用程序启动时,或使用 File > New 或 Cmd+N),我需要使用初始种子对象填充此文档。假设我的文档是一个笔记本,所以我希望新文档在创建时包含一个空笔记。所以我无辜地插入我的对象(-[NSEntityDescription initWithEntity: insertIntoManagedObjectContext:
),它工作。
我的问题是,文档似乎在打开后立即被编辑。这是一个糟糕的用户体验。此外,当关闭此文档而不添加任何进一步的更改时,会提示用户保存它(超级麻烦!)。
因此,到目前为止,我尝试解决此问题的方法是将操作设置为可在我的 undo-manager 上丢弃-[NSUndoManager setActionIsDiscardable:]
(设置为YES
on [myDocument undoManager]
)。但这并没有改变任何东西。
为了调试,我覆盖-[NSDocument isDocumentEdited]
并总是返回NO
. 它部分解决了这个问题。当然,我不想处理那些东西,我想它应该固定在 undo-manager/persistent document/managed object context 方面。
有人遇到同样的问题吗?
非常感谢大家!
objective-c - NSPersistentDocument 重命名后防止警告表
每当我的文档被重命名时,自动保存就会被阻止,并且重命名后的第一次保存会显示如图所示的消息。
从技术上讲,这不是问题,因为任何一个按钮都会将用户带回可自动保存的状态,但这会让我的用户感到困惑。
我试过钩住这个方法
并使用各种风格的updateChangeCount:
andupdateChangeCountWithToken:
但警告始终出现。
如何将文档置于重命名/移动后恢复标准自动保存行为的状态。?
cocoa - 未知类“_FITagEditorView”错误:这正常吗?
我正在使用该NSPersistentDocument
课程。打开文档时,出现以下错误。
你们中有人有同样的错误吗?正常吗(是新特性引起的Mavericks
)?我该如何解决?
cocoa - 更改 NSPersistentDocument 的默认 NSManagedObjectContext
核心数据新手在这里。我正在尝试更改 , 的默认值NSManagedObjectContext
,NSPersistentDocument
以便对其进行初始化并将其与NSMainQueueConcurrencyType
.
目前我正在这样做-windowControllerDidLoadNib:
:
这似乎工作正常。但我想知道 MOC 的初始化-windowControllerDidLoadNib:
是否是最好的做法,或者它是否应该放在其他地方和/或以不同的方式初始化。
谢谢你的帮助。
macos - How to preset file format for document-based core data application's save-dialog to sqlite?
I started a document-based core data application targeting 10.9-only from the corresponding Xcode 5.1 template.
When the save-dialog is opened from the file-menu of my application, the user is presented with three file format options: Binary, SQLite, XML.
I don't want to give the user this choice but instead preset the file format to SQLite and no longer present the options in the save-dialog.
How can i achieve this?
macos - “另存为”不适用于我的 NSPersistentDocument 应用程序
我有一个 OS X 应用程序,它使用 的子类NSPersistentDocument
来存储数据。Core Data 持久存储类型是 SQLite。我依赖于在 Xcode 中使用 Core Data 为基于文档的应用程序创建新项目时创建的标准菜单命令。
这个应用程序已经存在了大约两年,并且在不断发展。就在今天,我发现“另存为”在我的最新版本中不起作用。行为如下:
- 我创建了一个新文档并输入了一些数据。
- 我保存文档,关闭它,然后重新打开它。一切安好。然后我选择“另存为”,为文件选择一个新名称和位置。它被重命名,我可以输入更多数据。
- 我保存文档,关闭它,重新打开它,它完全是空的。
- 当我打开原始文档时,应该在另存为文档中的所有更改都在那里。
- 应用程序不会崩溃或产生任何错误。
我很确定它曾经正常工作。我尝试了我的程序的第一个“官方”版本,并且行为是相同的(错误的)。
编辑:我创建了一个相同类型的新 Xcode 项目,只有一个核心数据实体。行为是相同的。与我的应用程序唯一不同的是,新项目自动使用了 10.7 Lion 引入的新“复制”菜单命令,而不是“另存为”。所以我必须按Option键来选择“另存为”。
我只在 10.9.3 上测试过,但在两台不同的 Mac 上测试过。有人知道在哪里看吗?
编辑2:它似乎与特定帐户有关(我在两台机器上的帐户)。它在另一个帐户上正常工作。
core-data - 运行时为 NSPersistentDocument 生成的自定义 NSManagedObjectModel
我有一个使用 Core Data 的基于文档的 (OS X) 应用程序,因此该文档是 NSPersistentDocument 的子类。当用户创建一个文档时,他/她指定一个设置来确定受管对象模型中特定实体具有的属性数量。例如,“棒球比赛”实体可以有 4 到 9 局属性,这取决于用户在创建文档时指定的数量。出于效率目的,托管对象模型是在文档创建时生成的,其中棒球比赛实体恰好包含指定的局数属性。因此,五局文档将具有与九局文档不同的管理对象模型。
要动态设置托管对象模型,我必须-(id)managedObjectModel
在文档中覆盖。这是微不足道的,我可以轻松地提供具有适当数量的局数的托管对象模型。但是,如果用户打开一个保存的文档(局数未知),我再次被要求通过它为文档提供其托管对象模型-(id)managedObjectModel
. 我的难题是,如果我不认识自己,我怎么能告诉文件它有多少局?托管对象模型是在运行时创建和设置的,因此明智的做法是在文档中添加某种属性,告诉我有多少局。我正在考虑基于每个文档类似于 NSUserDefaults 的东西,但不存在这样的东西。我能想到的唯一方法是存储任何明确给我局数的实体/属性,但在我给文档提供其托管对象模型之前,它是不可访问的!解决这个问题的正确方法是什么?
macos - NSPersistentDocument OSX 的正确目录
我正在编写一个鞋盒类型的应用程序,其中用户将数据输入到单个窗口中。我已经使用代码数据配置了数据模型。Apple 的文档指出,用户数据应存储在库目录中,但自动生成的代码似乎在应用程序支持目录中创建了一个目录,文档还指出,“不应存储用户数据”。哪个是对的?我的另一个问题是我不应该在 applicationDidFinishLaunching 方法中创建 NSPersistentDocument 的实例吗?
core-data - 使用 NSPersistentDocument、UIManagedDocument 和 iCloud
我目前在 App Store 上有一个基于 CoreData 的应用程序,它支持 iOS 和 OS X 设备上的 iCloud。它是一个基于“半文档”的应用程序;也就是说,它在技术上不是基于文档的应用程序,但它管理多个 Core Data 数据库。
我通过创建自己的类来管理数据库名称列表(例如 Shopping/ToDo/etc)和一个NSManagedObjectContext
基于这些数据库名称实例化多个 s 的系统,使用启用了 iCloudNSPersistentStoreCoordinator
的 s 来实现这一点。
我想尽快更新应用程序(即第 2 版)并且一直在阅读UIManagedDocument
,NSPersistentDocument
但这引起了我的注意:
注意:在 OS X 中,NSPersistentDocument 类不支持 iCloud。
我的问题是:是否可以NSPersistentDocument
继承或建立一个系统,CoreData、iCloud、iOS 和 OS X 可以在一个基于文档的应用程序中结合在一起?
objective-c - 保存以前锁定的文档时 NSPersistentDocument 失败
使用我的NSPersistentDocument
子类打开锁定文件时,我在控制台中收到以下消息:
尝试在路径 [URL] 读/写处添加只读文件。改为只读方式添加。这将是未来的一个硬错误;您必须指定 NSReadOnlyPersistentStoreOption。
文档窗口标题为“(文档名称) - 已锁定”。用户解锁后,进行更改然后尝试保存,保存失败并出现错误
保存时出错。
NSPersistentDocument 似乎无法识别用户已解锁文档并且没有以读/写模式重新打开它。这是一个错误NSPersistentDocument
还是我在这里遗漏了什么?
我没有覆盖NSPersistentDocument
.