- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
自 iOS 5 起,CoreData 引入了自己的私有(private)队列
,您可以在其中让某些操作(特别是保存上下文
)在后台运行。
这必须通过[context PerformBlock:...]
完成。
这对于保存上下文
来说非常简单。但是,对于 NSFetchRequest
又如何呢?我的意思是,如果我想获取某些东西并希望在后台获取怎么办?我认为 [context PerformBlock..] 无法实现这一点。
还有新的方法吗?
最佳答案
任何涉及 NSPrivateQueueConcurrencyType
的 NSManagedObjectContext
的内容都应该包装在 performBlock
block 中。对于后台获取,您要将托管对象传递回主队列的上下文,如下所示:(请注意,这仅用于说明目的):
// assume self.managedObjectContext is a main queue context
NSManagedObjectContext *backgroundContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[backgroundContext performBlock:^{
// do your fetch - e.g. executeFetchRequest
NSManagedObjectID *objID = [someManagedObject objectID];
[self.managedObjectContext performBlock:^{
NSManagedObject *mainManagedObject = [self.managedObjectContext objectWithID:objID];
// do something now with this managed object in the main context
}];
}];
关于iphone - CoreData - 如何使用 NSPrivateQueueConcurrencyType 使用临时上下文执行 NSFetchRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379149/
我在使用子上下文作为 NSPrivateQueueConcurrencyType 的便签本时遇到了问题。 我的核心数据栈是这样的: View Controller 使用主上下文。 Worker Con
在 AFNetworking 从我的应用服务器获取信息后,将调用以下方法来填充我的 Core-Data。 这些信息似乎工作得很好,因为当表格更新时,我可以看到 UITableView 中正在更新的新信
在 AFNetworking 从我的应用服务器获取信息后,将调用以下方法来填充我的 Core-Data。 这些信息似乎工作得很好,因为当表格更新时,我可以看到 UITableView 中正在更新的新信
这两天我一直在尝试让 Core Data 与多线程一起工作。我尝试使用 NSOperations 的标准线程限制方法、合并通知、使用 objectWithId、每个线程的上下文字典,但我仍然遇到奇怪的
我在 connectionDidFinishLoading:connection NSURLConnection 异步委托(delegate)方法中使用此代码,同时下载大量数据。 - (void)sa
我正在开发一个需要多次异步下载并将其内容保存到核心数据实体的应用程序。其中一个下载量很大,并且注意到在创建/写入托管对象上下文时 UI 被阻止。我的研究让我阅读了并发核心数据设置,并开始实现其中之一。
我正在使用 NSPrivateQueueConcurrencyType NSManagedObjectContext 并且在以下情况下会发生死锁。 在后台线程上,调用 performBlock: 。该
正如标题所说,问题是,如果一个 NSManagedObjectContext 并发类型 NSPrivateQueueConcurrencyType 是串行的还是并发的。 更具体地说,如果我调用 [ma
使用 NSMainQueueConcurrencyType 和 NSPrivateQueueConcurrencyType 初始化的托管对象上下文连接到主队列和私有(private)队列,它们是串行队
我想知道 NSPrivateQueueConcurrencyType 上下文是否仅在 -performBlock 和 -performBlockAndWait 中运行。和从 NSPrivateQueu
我仍在为我的 RSS 阅读器编写代码,我已经到了这样的地步,我希望通过后台立即用最新的帖子填充我的 Feed 来让事情变得更顺畅。 问题是它使我的应用严重崩溃,并显示如下消息: 2013-10-02
我正在使用 NSPrivateQueueConcurrencyType 并发类型而不是 NSMainQueueConcurrencyType 遇到卡住(死锁?)。 我的上下文初始化: _managed
自 iOS 5 起,CoreData 引入了自己的私有(private)队列,您可以在其中让某些操作(特别是保存上下文)在后台运行。 这必须通过[context PerformBlock:...]完成
问题:当相关的 NSManaged 对象具有自定义 setter 时,使用后台线程获取托管对象不会正确延迟加载 NSManaged 对象关系。在具有主并发类型的主线程上执行提取没有问题。这是为什么?
我有一些现有的 Core Data 代码,它们使用 10.6 及更早版本的模式,在每个新线程中创建一个新的 NSManagedObjectContext,根据需要执行数据修改,保存 NSManaged
在 macOS 应用程序上,我有一个简单的 AddEditViewController,它从主视图 Controller 接收 NSManagedObject。然后,我创建一个子 NSManagedO
我是一名优秀的程序员,十分优秀!