- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使以下工作。
我有一个表格 View ,它在表格 View 中显示从 API 获取的数据。为此,我正在使用 NSFetchedResultsController:
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.database.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
NSManagedObjectContext *backgroundContext;
backgroundContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
backgroundContext.parentContext = document.managedObjectContext;
[backgroundContext performBlock:^{
[MyAPI createEntitiesInContext:backgroundContext];
NSError *error = nil;
[backgroundContext save:&error];
if (error) NSLog(@"error: %@",error.localizedDescription);
[document.managedObjectContext performBlock:^{
[document updateChangeCount:UIDocumentChangeDone];
[document.managedObjectContext save:nil];
}];
最佳答案
我今天在 Apple 开发论坛上读到了类似的问题。也许这和你的问题一样,https://devforums.apple.com/message/666492#666492 ,在这种情况下,可能存在错误(或至少有其他有相同问题的人可以讨论!)。
假设不是,听起来您想要做的事情应该完全可以使用嵌套上下文,因此假设 UIManagedDocument
没有错误.
我唯一的保留是我一直在尝试使用 UIManagedDocument
进行批量加载。并且它似乎不适用于嵌套上下文( https://stackoverflow.com/q/11274412/1347502 )。我认为 NSFetchedResultsController
的主要好处之一是它是否能够通过批量加载来提高性能。所以如果这不能在 UIManagedDocument
中完成也许 NSFetchedResultsController
尚未准备好与 UIManagedDocument
一起使用但我还没有深入了解这个问题。
撇开这个保留不谈,我阅读或查看的关于嵌套上下文和后台工作的大部分说明似乎都是使用 完成的。同行子上下文。您所描述的是父、子、孙配置。在 WWDC 2012 视频“Session 214 - Core Data Best Practices”(+ 16:00 分钟)中,Apple 建议在此场景的父上下文中添加另一个对等上下文,例如
backgroundContext.parentContext = document.managedObjectContext.parentContext;
document.managedObjectContext
,将通过获取、合并或刷新访问更改。这也在
UIManagedDocument
中有所描述。文档:
UIManagedDocument
的保存方法。这可能是您调用 save 的时候,也可能是问题的一部分。正如 Jeffery 所提到的,更强烈地不鼓励在父上下文上调用 save。我读过的关于堆栈溢出的另一个答案建议仅使用
updateChangeCount
触发
UIManagedDocument
保存。但是我没有从 Apple 读到任何东西,所以在这种情况下,也许可以调用
UIManagedDocument saveToURL:forSaveOperation:completionHandler:
方法适合使所有内容同步并保存。
NSManagedObjectContextObjectsDidChangeNotification
或在不同的上下文中保存通知并查看在
UIMangedDocument
时调用哪些通知(如果有)保存、自动保存或将背景更改保存到父级时(假设在这种情况下是允许的)。我假设
NSFetchedResultsController
连接到这些通知,以便与基础数据保持同步。
NSFetchedResultsController
。它需要刷新吗?
UIManagedDocument
已准备好用于一般消费,今年的 WWDC 上没有提及它,而是提出了关于如何构建更复杂的解决方案的冗长讨论:“Session 227 - Using iCloud with Core Data”
关于objective-c - 带有 NSFetchedResultsController 和背景上下文的 UIManagedDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11350670/
我一直在阅读苹果文档,但仍然有一个问题,我找不到答案。我有一个 UIManagedDocument 对象,它有两个嵌套上下文 - 主线程上的子上下文和私有(private)线程上的父上下文。接下来,我
我已经看过 How do I create a global UIManagedDocument instance per document-on-disk shared by my whole ap
在UIManagedDocument的文档中简要提到了以下内容: 为了支持异步数据写入,Core Data实际上使用一对嵌套的托管对象上下文。 是特定于UIManagedDocument还是Core
所以我将核心数据迁移到UIManagedDocument。 在iPhone模拟器上调用openWithCompletionHandler可以正常工作,但是当我尝试在真实设备上运行项目时,它始终返回NO
我有一个连接到 NSFetchedResultsController 的 TableView ,相应的 managedObjectContext 是 self.myDatabase.managedOb
好吧,假设我正在制作一个观鸟应用。 有一个“官方”鸟类数据库。它存储在一个 UIManagedDocument 中。它用于将所有鸟类填充到 UITableView 中,并使用图片和数据为每只鸟类提供详
我正在尝试使用 Core Data 制作一个 iPhone 应用程序。我必须使用 NSManagedObjectContext 来访问数据,为此我使用了 UIManagedDocument。但是,如果
我的应用使用核心数据 SQLite 数据库。我想让我的用户使用 iCloud 在设备之间同步它 - 我想我可以使用 UIManagedDocument。 我按照 Apple 的文档对其进行了子类化,并
我正在使用这个博客:http://www.adevelopingstory.com/blog/2012/03/core-data-with-a-single-shared-uimanageddocum
我找到了这些斯坦福教程 https://itunes.apple.com/us/course/ipad-iphone-app-development/id495052415 ,一直在听有关核心数据的讲
我正在开发一个使用 UIManagedDocument 子类的 iPhone 应用程序并将其文档存储在 iCloud 上。 一切正常,直到我更改了我的核心数据模型/方案(添加了一个新的模型版本 - 就
首先,我应该提到这是我在这个网站上的第一篇文章。我正在尝试自学 iOS 编程,在谷歌搜索答案时,我发现我经常被引导到这里。所以感谢所有在这里做出贡献的人。你已经帮了我很多了。 我一直在参加斯坦福大学
在斯坦福大学 CS193P 类(class)中,我开始在我的应用程序中使用 CoreData,该类(class)涉及 iOS 5 新类 UIManagedDocument 的使用。该方法本身非常简单,
我的应用程序中有一项功能,用户可以通过单击按钮重置应用程序上的所有内容。此时,我没有尝试删除所有核心数据关系(级联删除)和其他并发症,而是决定使用这段代码实际删除整个 UIManagedDocumen
我设置了异常断点,当我调用时- (void)saveToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation
我正在使用 UIManagedDocument 读取和写入 CoreData。我有 Document 类。这是一些教程中的文档: .h #import #import typedef void (
最近,我在 iOS 中使用一个时间表应用程序,我在使用 Core Data 时遇到了问题。 我的应用程序有一个主用户界面,有点像 Apple 创建的原始日历应用程序,我将所有事件数据保存在 Core
我在使用 UIManagedDocument 保存实体时遇到问题。我有一个 NSFetchedResultsController,其上下文设置为 UIManagedDocuments 上下文。我在 C
如标题中所述,我想同步打开 UIManagedDocument,即,我希望我的执行等到打开完成。我仅在 mainThread 上打开文档。 当前要打开的 API 使用 block [UIManaged
我一直在关注 CS193p 关于核心数据的讲座,但在插入新的托管对象时遇到了问题。 错误是: Terminating app due to uncaught exception 'NSInternal
我是一名优秀的程序员,十分优秀!