sol*_*eil 5 core-data nsmanagedobjectcontext ios
我对 NSManagedObjectContextConcurrencyType 的文档没有任何意义。我将在以下情况下使用哪种类型,为什么?
- (void)viewDidLoad
{
self.managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:???];
[self loadRecordsFromCoreData];
}
- (void)loadRecordsFromCoreData {
[self.managedObjectContext performBlockAndWait:^{
//[self.managedObjectContext reset]; //do I need to do this?
NSError *error = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"display == YES"];
[request setPredicate:predicate];
[request setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]];
self.items = nil;
self.items = [self.managedObjectContext executeFetchRequest:request error:&error];
}];
[self displayItems];
}
Run Code Online (Sandbox Code Playgroud)
-displayItems 将根据 self.items 数组中对象的属性显示视图,例如 item.image、item.title、item.descriptionText 等。
NSMainQueueConcurrencyType。
UI 事件(例如视图加载)发生在主线程上。您将在主线程上操作对象(在本例中为 self.items),因此您应该确保它们也被提取到上下文中/保存在该线程上。
NSPrivateQueueConcurrencyType适用于其工作在后台线程上完成的上下文。
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |