2011-02-28 82 views
0

Iam使用sqlite数据库详细信息显示在tableview中。使用NSSortDescriptor Iam能够按升序或降序显示表行内容。请帮助我避免排序过程并显示tableview中的内容,因为它们是进入。 下面是我使用的代码。它通过排序数据很好地工作,帮助我避免排序。 -避免使用NSSortDescriptor排序

(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; 
    }  

回答

1

我假设您在sql lite中使用核心数据。如果是这样,你应该使用NSFetchedResultsController,有很多例子说明如何在网络上使用它。

NSFetchedResultsController需要一个排序描述符,如果你想让你的值不按顺序记住你正在填充你的表视图基于对你的控制器的获取结果(-objectAtIndexPath :)中的元素的indexPath引用。

因此,你可以让行返回行数低于行数的随机索引路径

相关问题