我使用sqlite数据库详细信息显示在tableview中。使用NSSortDescriptor我可以按升序或降序显示表行内容。请帮助我避免排序过程并在输入时显示tableview中的内容。 这是我正在使用的代码。它通过排序数据很好地工作,帮助我避免排序。 -
(NSFetchedResultsController *)fetchedResultsController {
// Set up the fetched results controller if needed.
if (fetchedResultsController == nil) {
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"book" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSLog(@"inside table view %@",aFetchedResultsController);
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
}
return fetchedResultsController;
}
答案 0 :(得分:1)
我假设您使用sql lite的核心数据。如果是这样,你应该使用NSFetchedResultsController,有许多如何在网上使用它的例子。
NSFetchedResultsController需要一个排序描述符,如果您希望您的值无序,请记住您正在根据对控制器获取结果中元素的indexPath引用来填充表视图(-objectAtIndexPath :)。
因此,您可以使用行数低于行数的随机索引路径返回