问题标签 [uimanageddocument]
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 - 覆盖 UIManagedDocument 中的 managedObjectModel
我正在使用 iOS 5.0 中的新 UIDocument 功能。我有一个使用多个不同数据模型(momd 文件)的现有应用程序。根据 UIManagedDocument 的文档,您可以覆盖 -(NSManagedObjectModel*)managedObjectModel 以加载特定的数据模型(默认是加载所有找到的合并在一起的数据模型)。两种数据模型都有重叠的模型名称和不同的模式,所以这在我的情况下是不可取的。
因此,我在一个简单示例中遇到的问题是我可以覆盖该函数,但我无法分配它的结果。它都是私有的,所以_managedObjectModel 不能被子类访问;而且,它是只读的,因此无法分配 self.managedObjectModel ..
我寻找了一个覆盖 managedObjectModel 的 UIManagedDocument 示例,但 Apple 似乎没有提供。
我也许可以定义一个新的实例变量 _myManagedObjectModel 并分配它。然后在我覆盖的访问器上返回它。我担心的是,这可能会破坏 UIManagedDocument 的一些内部实现,它不使用 managedObjectModel 访问器而不是 _managedObjectModel (这在苹果的实现中经常看到......)
似乎是一个直截了当的问题,我怀疑我只是错过了一些非常简单的东西来允许适当的覆盖。
标题:
objective-c - UIManagedDocument 不保存
我正在使用 UIManagedDocument 来管理我的数据。我创建模型并使用它,一切似乎都在工作,但我的更改并没有被写回 SQLite 存储。
UIManagedDocument 的文档说自动保存应该负责将数据持久化到数据库中,但这似乎没有发生。
这会获取我想要添加的对象(并成功)。
这会将项目添加到另一个对象的项目集合中,然后告诉文档我已完成更改。
我预计在此之后不久会看到写入核心数据存储的更改,但是在 Instruments 中观察,我发现它永远不会发生。
items 集合是一个 NSOrderedSet,并且由于对此项目的评论:
我添加了一个 addItemsObject: 到包含集合的对象:
也许 Core Data 被告知项目集合已更改出现问题,但我不知道如何。
core-data - UIManagedDocument 迁移数据模型
我正在开发一个使用 iCloud 的子类UIManagedDocument
并将其文档存储在 iCloud 上的 iPhone 应用程序。
在我改变我的核心数据模型/方案(添加一个新的模型版本 - 就像我在过去几周里做过几次一样)之前,一切都很好。我添加了一个新属性并更改了现有属性之一的数据类型。
现在,当我运行我的应用程序时,我似乎无法使用UIManagedDocument
's加载我的文档-openWithCompletionHandler:
。我可以创建新文档并读/写它们。如果我将数据模型版本改回 1,那么我可以阅读现有文档,但不能阅读新文档。
据我了解,我只对数据模型进行轻量级迁移,并且UIManagedDocument
应该处理它吗?
任何建议将不胜感激!
iphone - UIManagedDocument 示例/教程
我一直在尝试创建一个简单的UIManagedDocument
库样式应用程序(将单独的文档保存到 iCloud),但没有成功。
我对以下内容感到困惑:
我是子类UIManagedDocument
化并在这个子类中设置persistentStoreCoordinator
, ManagedObjectModel
& ManagedObjectContext
,还是应该在这个子类中配置这些AppDelegate
(如果是的话,我该如何去刷新persistentStoreCoordinator
以查看新文件 - 似乎一旦读取persistentStore
了我无法让它读取新的持久存储)?
ios - 在 iOS 5.0 模拟器中使用 UIManagedDocument 时出现 NSFileCoordinator 错误
我在 iOS 5.0 中使用 UIManagedDocument,在模拟器上运行应用程序,在 OSX 10.6 下使用 XCode 4.2。有问题的代码如下所示:
运行标记的行会在日志中创建以下消息:
发送消息后,UIManagedDocument 可能工作也可能不工作——我还没有找到决定这一点的情况。
我很确定代码是正确的,因为它实际上是斯坦福 CS193p 课程中的代码示例之一。整个示例可以在他们的网站上下载 http://www.stanford.edu/class/cs193p/cgi-bin/drupal/ 直接链接到代码: http: //www.stanford.edu/class/cs193p/ cgi-bin/drupal/system/files/sample_code/Photomania_0.zip
此外,代码在设备本身上运行良好,不会产生“令人惊讶”的消息,并且运行之后的所有代码都很好。
我在谷歌上没有找到任何东西,在 Apple 开发者页面上也没有。重新启动模拟器或 XCode,或重新安装它们都不会改变行为。
有任何想法吗?
objective-c - 如何将现有的非文档核心数据存储转换为 uimanageddocument?
如何将数据从现有的非文档核心数据存储导入到 uimanageddocument?
问题是如何从旧的 managedObjectContext 复制到新的。
iphone - UIManagedDocument 和 NSFetchedResultsController
我在使用 UIManagedDocument 保存实体时遇到问题。我有一个 NSFetchedResultsController 其上下文设置为 UIManagedDocuments 上下文。我的控制器设置了部分。用户向 UIManagedDocuments 上下文添加一个条目,我使用以下命令保存上下文:[context save:&error]; 并且我的 NSFetchedResultsController 正确更新。
如果我离开具有 NSFetchedResultsController 的视图,然后返回到视图,在该视图中创建一个具有相同 UIManagedDocuments 上下文的新 NSFetchedResultsController,当我调用时会收到错误消息: [fetchedResultsController performFetch:&error];
错误说:
CoreData:错误:(NSFetchedResultsController)索引处获取的对象有一个乱序部分名称'。对象必须按部分名称排序'
并且获取失败。
如果我在返回视图之前等待一段时间,我不会收到错误消息。我知道保存操作是在子上下文中完成的,然后将更改推送到父上下文中,我认为这与问题有关。有没有人有办法解决吗?
core-data - 你如何处理 UIManagedDocument?
首先,我应该提到这是我在这个网站上的第一篇文章。我正在尝试自学 iOS 编程,并且在我的谷歌搜索中我发现我经常被引导到这里。所以感谢所有在这里做出贡献的人。你已经帮了我很多忙了。
我一直在学习斯坦福 CS193P 课程并且喜欢它。但我现在被困住了,不知道该去哪里。
我的问题是 UIManagedDocument。
我厌倦了制作一个简单的应用程序来测试我的新技能。这就是它的作用:
一个简单的会计应用程序,用于跟踪个人对筹款活动的贡献。
我有一个 UITabBar,每个选项卡上都允许您: 1. 跟踪参与者(玩家) - 这将连接到地址簿并允许您添加它们或将它们保留在此应用程序中。2. 管理事件(事件) - 您可以添加、编辑或删除事件,然后将参与者添加到该事件中,然后能够添加他们在该事件中带来的(银行)。3.设置。- 我添加了一些按钮来帮助我现在解决问题,包括一个清除所有数据的重置按钮和一个“虚拟数据”按钮。
我有三个 coreData 实体。Players、Events 和 Bank 都与其他两个有关系。
当我第一次尝试制作这个应用程序(iOS5 之前)时,我使用 appDelegate 创建了我的 ManagedObjectContext 并将它传递给我的 viewControllers。那行得通。但现在我应该使用 UIManagedObjectDocument 而不是 AppDelegate。我相信我了解原理和与 iCloud 的集成。(我可能是错的)
使用该课程中的示例以及我可以在网上找到的内容,我创建了一个帮助程序类,它将在我的 UINavigationControllers 中提供我的每个 ViewControllers 中的第一个 ManagedDocument。
然后我让第一个 ViewController 打开文档并执行获取。
从那里我通过 segue 将选择的任何 NSManagedObject 传递给下一个 ViewController。
问题是当我开始添加或重置数据时。(我假设如果我可以让它与“虚拟数据”按钮一起工作,我可以让它在单个条目上工作)当我按下“重置”或“虚拟”按钮时,我的日志告诉我它是推送,但在我重新启动应用程序之前,我看不到数据有任何变化。然后它完美地显示出来。我的猜测是我没有正确保存文件或者我没有正确刷新 tableViews。我在使用 NSNotification 方面做了一个小小的尝试,但没有深入研究它,因为我无法让它响应任何东西。如果需要,我很乐意回到那条路。
这是我的保存方法...几乎只是从默认的 coreData appDelegate 复制而来。
CS193P 的讲师 Paul 在作业 6 中建议使用辅助方法通过块传递 UIManagedDocument。我得到了积木背后的理论,但还没有完全理解它们,所以我不排除我的答案也可能在那里。
非常感谢您提供的任何帮助或为我指明正确的方向以进行更多研究。抱歉这篇文章太长了,我尽量说清楚。
iphone - 核心数据:UIManagedDocument 与 AppDelegate 的 managedObjectContext @property
有两种方法可以获取我知道的 NSManagedObjectContext:
创建一个 UIManagedDocument 并询问其托管对象上下文
访问 AppDelegate 的 managedObjectContext @property。
这里有什么取舍?我一直在使用 UIManagedDocument 方式,但我似乎无法在任何地方找到关于何时/为什么选择一个而不是另一个的解释。任何澄清将不胜感激!
iphone - UIManagedDocument - 验证核心数据实体
我有一个使用 Core Data 的应用程序,它通过使用 UIManagedObject 获取它的 ManagedObjectContext。从阅读中,我看到我不应该直接保存上下文 - 而我应该依赖 UIManagedObject 的自动保存或使用 saveToURL:... 我的问题是我想验证存储在我的实体中的数据。我对实体有约束,指定字符串属性的最小长度为 1。但是,我可以创建一个新对象,为其属性分配空字符串,然后保存文件。在 saveToURL:... 的完成处理程序中,它始终具有真正的成功值。然后,我为我的实体的 name 属性创建了自己的验证器。我使用了 Core Data Programming Guide 中的示例代码 -
当它运行时,我看到 ioValue 的长度为 0 并且它返回 NO,但是我的完成处理程序永远不会被调用。任何帮助都会很棒。
关于如何使用 UIManagedDocument 处理保存错误,我是否缺少一些东西 - 特别是如何通知调用代码在保存其信息时发生了错误。