gpt4 book ai didi

ios - 使用 NSFetchedResultsController 后 TableView 保持为空

转载 作者:行者123 更新时间:2023-11-28 22:28:20 25 4
gpt4 key购买 nike

我尝试使用 NSFetchedResultsController 来向我的 tableView 显示部分。但是现在我的 tableView 一直是空的。

 @property (nonatomic,strong) NSManagedObjectContext* managedObjectContext;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;


- (NSManagedObjectContext *)managedObjectContext
{
NSManagedObjectContext *context = nil;
id delegate = [[UIApplication sharedApplication] delegate];
if ([delegate performSelector:@selector(managedObjectContext)]) {
context = [delegate managedObjectContext];
}
return context;
}

- (void)viewDidLoad
{
self.fetchedResultsController = nil;
self.fetchedResultsController.delegate = nil;

}


- (NSFetchedResultsController *)fetchedResultsController {

if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];


// Create and configure a fetch request with the plant entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Travel" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

// Create the sort descriptors array.
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:nameDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

// Create and initialize the fetch results controller.
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"country" cacheName:@"country"];
self.fetchedResultsController = aFetchedResultsController;
_fetchedResultsController.delegate = self;

return _fetchedResultsController;
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return [[self.fetchedResultsController sections] count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo = [self.fetchedResultsController sections][section];
return [sectionInfo numberOfObjects];
}


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return @""; }

我按照教程进行操作,但 tableView 现在是空的。我的 tableView 之前工作正常(使用 coreData)。也许有人知道我的问题的答案。谢谢。

最佳答案

在构造完 NSFetchedResultsController 之后,您似乎忘记了这样做:

NSError *error;
BOOL success = [_fetchedResultsController performFetch:&error];

关于ios - 使用 NSFetchedResultsController 后 TableView 保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com