2011-02-28 79 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引用。

因此,你可以讓行返回行數低於行數的隨機索引路徑

相關問題