gpt4 book ai didi

ios - NSFetchedResultsController 未按预期获取

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

我在我的 iOS 应用程序中使用以下 NSFetchedResultsController:

- (NSFetchedResultsController *)fetchedResultsController {

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

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"ToDoItems" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"tdText" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;

return _fetchedResultsController;

}

为了测试它,我使用了以下代码:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int numero = [self.fetchedResultsController.fetchedObjects count];
NSLog(@"Numero=",numero);
switch (section)
{
case 2 : return numero;
case 3 : return 30;
default : return 8;
}
}

我确定,实体 ToDoItems 现在有 1 个对象(使用 SQLite 管理器检查),但 NSLog 显示 Numero=我的代码有什么问题?

最佳答案

首先,正如我评论中所说,您的日志不正确。

NSLog(@"numero = %d", numero);

然后你应该正确地实现你的 TableView 的数据源方法。例如

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [[fetchedResultsController sections] count];
}

- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
id sectionInfo =
[[fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}

numero 这里是 [sectionInfo numberOfObjects]

有关更多信息,请查看 NSFetchedResultsController tut显然是核心数据编程指南。这是您的引用手册。

关于ios - NSFetchedResultsController 未按预期获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054327/

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