ios NSFetchedResultsController的使用
2016-08-25 22:02
423 查看
NSFetchedResultsController是一个联系CoreData和TableView类,方便地将数据显示到table中,不需要自己去将CoreData中的数据做分区,然后显示。
- (NSFetchedResultsController *)fetchedResultsController
{
if (nil !=
_fetchedResultsController) {
return
_fetchedResultsController;
}
NSManagedObjectContext *context = [self.contactsData
managedObjectContext]; //获取NSManagedObjectContext
NSFetchRequest *fetchRequest = [[NSFetchRequest
alloc] init]; //初始化一个NSFetchRequest
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Contacts"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSSortDescriptor *sortDescriptor = [NSSortDescriptor
sortDescriptorWithKey:@"name"ascending:YES]; //设置用来排序的key
[fetchRequest setSortDescriptors:[NSArray
arrayWithObject:sortDescriptor]];
// NSPredicate *predicate = [NSPredicate predicateWithFormat:@"shengxiao == %@", self.team]; //设置从CoreData中取数据的过滤器,即一个谓词,很强大的东西
// [fetchRequest setPredicate:predicate];
[fetchRequest setFetchBatchSize:20];
NSString *sectionNameKey = [self.contactsData
GetSectionNameKey];
_fetchedResultsController = [[NSFetchedResultsController
alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:sectionNameKey
cacheName:@"ContactsCache"]; //设置按哪个key来进行分区,如果设置为nil的话,就是不分区
_fetchedResultsController.delegate =
self;
if (![_fetchedResultsController
performFetch:&error]) {
//最后就是执行fetch,即将上面所有的设置生效
NSLog(@"Unresolved error %@, %@", error, [error
userInfo]);
abort();
}
return
_fetchedResultsController;
}
很方便的类,给我省了很多事情。之前不知道有这个类,就自己手动去从CoreData取了数据,然后分区,再显示到tableView,太麻烦。苹果于是做了这么一个类帮我们省了很多事。
- (NSFetchedResultsController *)fetchedResultsController
{
if (nil !=
_fetchedResultsController) {
return
_fetchedResultsController;
}
NSManagedObjectContext *context = [self.contactsData
managedObjectContext]; //获取NSManagedObjectContext
NSFetchRequest *fetchRequest = [[NSFetchRequest
alloc] init]; //初始化一个NSFetchRequest
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Contacts"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSSortDescriptor *sortDescriptor = [NSSortDescriptor
sortDescriptorWithKey:@"name"ascending:YES]; //设置用来排序的key
[fetchRequest setSortDescriptors:[NSArray
arrayWithObject:sortDescriptor]];
// NSPredicate *predicate = [NSPredicate predicateWithFormat:@"shengxiao == %@", self.team]; //设置从CoreData中取数据的过滤器,即一个谓词,很强大的东西
// [fetchRequest setPredicate:predicate];
[fetchRequest setFetchBatchSize:20];
NSString *sectionNameKey = [self.contactsData
GetSectionNameKey];
_fetchedResultsController = [[NSFetchedResultsController
alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:sectionNameKey
cacheName:@"ContactsCache"]; //设置按哪个key来进行分区,如果设置为nil的话,就是不分区
_fetchedResultsController.delegate =
self;
if (![_fetchedResultsController
performFetch:&error]) {
//最后就是执行fetch,即将上面所有的设置生效
NSLog(@"Unresolved error %@, %@", error, [error
userInfo]);
abort();
}
return
_fetchedResultsController;
}
很方便的类,给我省了很多事情。之前不知道有这个类,就自己手动去从CoreData取了数据,然后分区,再显示到tableView,太麻烦。苹果于是做了这么一个类帮我们省了很多事。
相关文章推荐
- iOS NSFetchedResultsController的使用(使用数据库时提高效率)
- iOS教程:如何使用NSFetchedResultsController
- iOS:CoreData数据库的使用四(数据库和UITableViewController以及NSFetchedResultsController一起使用)
- [ios开发基础之 Core Data[3]]如何使用NSFetchedResultsController 来集成TableView操作
- NSFetchedResultsController的使用
- Core Data浅谈系列之七 : 使用NSFetchedResultsController
- NSFetchedResultsController的使用
- 如何使用NSFetchedResultsController
- 如何使用NSFetchedResultsController-备
- iOS 数据持久化之CoreData(三)NSFetchedResultsController +Demo
- Core Data 教程: 如何使用NSFetchedResultsController
- iOS Swift教程 Core Data (五)NSFetchedResultsController 上
- 如何使用NSFetchedResultsController
- CoreData使用方法二:NSFetchedResultsController实例操作与解说
- Core Data浅谈系列之七 : 使用NSFetchedResultsController
- Core Data浅谈系列之七 : 使用NSFetchedResultsController
- NSFetchedResultsController的使用
- NSFetchedResultsController的使用
- Core Data浅谈系列之七 : 使用NSFetchedResultsController
- Core Data浅谈系列之七 : 使用NSFetchedResultsController