gpt4 book ai didi

ios - 使用 NSFetchedResultsController 创建表格部分

转载 作者:可可西里 更新时间:2023-11-01 03:06:47 24 4
gpt4 key购买 nike

我正在使用 NSFetchedResultsController 为我的 UITableViewController 驱动数据。我正在获取的托管对象的简化版本如下所示(例如):

Person:
-(BOOL)hasPet;
-(BOOL)hasDog;

基本上,我希望我的表只显示那些拥有宠物的 Person 对象。所以很简单,我可以使用谓词。现在,对于那些 hasPet == YES 的人,我想将它们分成两部分放在表中,第一部分 hasDog == YES,第二部分是 hasDog == NO。这是我有点模糊的地方。这是我配置结果 Controller 的地方,希望有人能帮助我指引正确的方向。

- (NSFetchedResultsController *)fetchedResultsController {
if (nil != fetchedResultsController) {
return fetchedResultsController;
}

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

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"hasPet == %@", [NSNumber numberWithBool:YES]];
[fetchRequest setPredicate:predicate];

NSSortDescriptor *dogDescriptor = [[NSSortDescriptor alloc] initWithKey:@"hasDog" ascending:YES];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:dogDescriptor, sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];
aController.delegate = self;
self.fetchedResultsController = aController;

// Release things

return fetchedResultsController;
}

排序描述符是我需要集中注意力的地方吗?

最佳答案

很简单!只需在其初始化程序中为 NSFetchedResultsController 提供 sectionNameKeyPath(在本例中为 hasDog)即可。

不过,需要注意的是,部分名称将分别为 01,但它很容易修复。

关于ios - 使用 NSFetchedResultsController 创建表格部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309605/

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