问题标签 [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.
objective-c - 创建持久存储时 NSPersistentDocument 崩溃
最近我在我的核心数据模型中添加了一个新实体,因此我为模型创建了一个新版本并为它创建了一个映射模型。但是,现在我的 NSPersistentDocument 崩溃了,没有明显的原因:
控制台日志:
*** -[NSCFArray insertObject:atIndex:]: 尝试插入 nil
如果有帮助,这是堆栈跟踪:
删除映射模型没有帮助,所以我猜是因为文档试图加载错误/无数据模型,但我还没有找到一种方法来说明它应该使用给定的数据模型。
编辑:当我使用自己的 iOS 核心数据抽象类时,一切都很好。所以万恶之源似乎是NSPersistentDocument
。实际上我不想切换回 NSDocument 并且必须再次自己实现核心数据处理,所以非常感谢任何帮助!
xcode4 - 将 NSArrayController 绑定到 XIB 视图中 Xcode4 中 NSPersistentDocument 子类中的 moc
我有我的 NSPersistentDocument 的子类,他的超类有 [self managedObjectContext]
试图在 xib 中设置我的 NSArrayController 的绑定。当我设置参数的 Moc 时,绑定到选项是:文件的所有者、应用程序和首选项。(NSArrayController 的实体在我的上下文中设置为实体名称)
模型 KeyPath 默认为 self。然后我将表列的值绑定到 NSArrayController (我不确定如何在 Xcode 4 下重命名).arrangedObjects.(我的实体属性的名称)
UI 上有一个填充按钮,用于自行填充上下文。
当我跑步时。UI 不会出现,我在控制台中得到的所有内容都会重复:-[MyDoc persistentStoreCoordinator]: unrecognized selector sent to instance 0x10015adf0
建议?
core-data - 在 NSPersistentDocument 中创建新的 NSManagedObject 拒绝保存,即使撤消显示尽可能
我有一个 CoreData / NSPersistentDoc 应用程序。它工作正常。
我向 MOM 添加了一个新实体,并更新了版本。
现在,当我在 MOC 中创建该实体的新实例时,“保存”菜单项将保持禁用状态,直到/除非我创建应用程序中已有的旧实体的任何实例。
标题栏上的红点按钮正确变为黑色,表明文档已更改 - 但 OS X / NSDocument 拒绝承认这一点 - 无法进行保存。
有任何想法吗?
core-data - 如何正确更新 Xcode4 中的模型而不损坏它?
我在使用 Xcode3 时从来没有遇到过任何问题,但是在使用 Xcode4 时,当我更新核心数据模型时,Apple 的代码大约 3 次失败,出现可怕的“持久存储迁移失败,缺少源管理对象模型”。错误。
这是我的设置(我如何将项目配置为自动迁移):
- NSPersistentDocument,来自 Apple 的模板
- 覆盖 Apple 的模型加载方法,我唯一要做的就是在 storeOptions 字典中提供两个标志,它们会打开自动迁移
这是我一直在使用的过程(它已经解决了 Xcode4 中的 1 个错误!)
- 选择模型(在 Xcode4 中命名为“something.xcdatamodel”,左侧有一个twisty)
- 转到编辑器菜单,选择“添加新模型版本...”
- 将新版本命名为比上一个大的 1 整数 - 例如,如果以前是“4”,则将新版本命名为“5”
- 在右侧窗格中,将当前模型版本更改为新创建的版本
- XCode4 错误的解决方法:选择任何文件,然后选择新创建的模型。如果不这样做,Xcode 会在新创建的模型上显示选择,但会改为编辑以前的模型,这肯定会破坏 CoreData 中的所有内容
- 编辑您的模型;在这种情况下,我正在向现有实体添加一个新属性
- 节省。建造。跑。... 碰撞。
除了,正如我所说,大约 3 次中的 2 次可以正常工作。一旦它工作一次,它(显然)很好 - 轻量级迁移完成,下一次保存保存在新模型版本中。
所以我猜我在上述步骤中做错了什么,但我已经通过文档 5 或 6 次并且看不到任何明显的东西。NSPersistentDocument 文档都已过时并无济于事 - 但我也多次在 iPhone 上进行过轻量级迁移,所以我对这样做有相当的信心,这对我来说似乎是正确的。
我尝试过/检查过的其他事情:-iPhone Core Data Lightweight Migration Cocoa 错误 134130:找不到源存储的模型(不;只包含根 xcdatamodel)
cocoa - 处理来自 NSPersistentDocument 的命令行参数
我有一个基于 NSPersistentDocument 的应用程序,它具有基于不同条件和数据的三个不同视图,并且每个都可以正常工作。
现在客户还想从 shell 脚本运行应用程序。
例如
open -a myapp.app --args -data list.csv
启动应用程序打开视图 A(数据网格)
open -a myapp.app --args -data list.myownformat -startline 6
启动应用程序打开视图 B(饼图)
我必须在哪里以及如何处理 NSPersistentDocument 子类中的命令行参数?
许多应用程序允许启动 GUI 的双重启动 GUI 或 CLI,但我无法理解如何从 NSPersistentDocument 实现此结果。
欢迎任何最佳实践、提示、源代码
objective-c - NSPersistentDocument“不支持的存储类型”异常
我现在两次遇到这个问题:Xcode 4.1、Lion 和一个 NSPersistentDocument 核心数据项目。
我的程序运行良好,直到我向模型中的一个实体添加了两个“二进制数据”属性。现在,当我运行应用程序并尝试保存文档时,会从configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:
.
上次我开始收到此错误时,是在我更新项目目标设置中的设置时。那时,重置更改的设置没有效果,我必须从备份中恢复 Xcode 项目文件,然后它才能工作 - 所以它与代码无关。
这是抛出异常时的日志:
我目前正在使用 SQLite 存储类型。我还尝试删除添加到实体的属性,但得到相同的结果。我还清除了所有缓存,清理了项目,并删除了 DerivedData 文件夹。我也关机了autosavesInPlace
。我觉得这是某种 Xcode 错误。
有没有人见过这个?谢谢!
macos - NSPersistentDocument – 如何访问窗口?
我想设置我的 NSPersistentDocument 对象的窗口的一些属性。我如何访问它?
有没有比这样更好的方法?
cocoa - 撤消管理器未与 NSPersistentDocument 保持同步
我在核心数据数据库中有一些计算值,我需要在保存之前对其进行更新。基本上我对一些实体进行编号以简化它们之间的导航。
目前我正在观察NSManagedObjectContextWillSaveNotification
并尝试在那里进行编号。我所做的更改似乎已保存,但撤消管理器似乎仍有一些修改。这使得文档看起来像是发生了变化(标记在关闭按钮上),即使托管对象上下文说它没有 ( hasChanges
)。如果我撤消一次,文档看起来没有任何变化,但反过来,托管对象上下文确实如此。
撤消管理器是否以某种方式将自身重置在错误的位置,或者我做错了什么?
更新
我在其中进行重新编号的有点混淆的代码如下所示:
包含一个文本字段,该_contentViewController
字段将被解析为SomeItem
.
cocoa - -makeWindowControllers 是初始化 NSPersistentDocument 的最佳位置吗?
使用 加载现有文档时NSPersistentDocument
,作为初始化的一部分,我想准备一些内容:
当我将此代码放入时-init
,获取请求不会返回任何结果。
NSPersistentDocument
我在将视图控制器组件从我的子类重构为新子类时遇到了这个问题NSWindowController
。我曾经在 中处理这个初始化-windowControllerDidLoadNib:
,但现在不再调用了。
如果我将代码从 移动-init
到 ,-makeWindowControllers
我会得到我期望的结果。-makeWindowControllers
准备这样的内容真的是正确的地方吗?
macos - NSManagedObjectContextObjectsDidChangeNotification 并不总是立即调用
我有一个使用 NSPersistentDocument 的 Mac 应用程序。我想在删除对象以使用 Core Data 保存此信息时收到通知。所以我正在监听 NSManagedObjectContextObjectsDidChangeNotification。通常在删除对象时立即调用它,但有时仅在保存持久性文档后调用它,并且之前不会通知所有已删除的对象。因为我想让用户直接导出所有现有对象(而不是已删除的对象),我必须做什么才能立即收到通知以保存删除信息,还是必须以其他方式使用它?