gpt4 book ai didi

iphone-sdk-3.0 - 带有核心数据的首字母部分标题

转载 作者:行者123 更新时间:2023-12-04 06:56:56 25 4
gpt4 key购买 nike

我正在尝试创建一个在部分 tableView 中排序的人员列表,其中第一个字母作为每个部分的标题 - 一个地址簿。我已经完成了所有工作,尽管排序顺序存在一些问题。这是我现在的做法:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Contact" inManagedObjectContext:context]];

NSSortDescriptor *fullName = [[NSSortDescriptor alloc] initWithKey:@"fullName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:fullName, nil];
[request setSortDescriptors:sortDescriptors];
[fullName release];
[sortDescriptors release];

NSError *error = nil;
[resultController release];
resultController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:@"firstLetter" cacheName:nil];
[resultController performFetch:&error];
[request release];

fullName 是一个标准属性,而 firstLetter 是一个 transient 属性,它返回 - 正如您所期望的 - fullName 的第一个字母。在 95% 的情况下,这可以完美运行。

问题是结果 Controller 期望这两个“列表”(已排序的 fullName 列表和已排序的 firstLetter 列表)完全匹配。如果我有 2 个联系人,例如 John 和 Jack,我的 fullName 列表每次都会将它们排序为 Jack, John,但我的 firstLetter 列表有时可能会将它们排序为 John, Jack,因为它有时只按第一个字母排序,其余的就靠运气了。当这些列表不匹配时,我会得到一个包含 0 个项目的空白 tableView。

我不确定我应该如何解决这个问题,但这非常令人沮丧。有没有其他人遇到过这个问题?你们发现了什么?

最佳答案

我对您所说的“首字母列表”的意思感到困惑。

您不应该创建这样的列表。您只需为 transient “firstLetter”属性实现 getter,并使用获取的结果 Controller 的样板方法来实现表 View 方法。

this answerHow to use the first character as a section name详情。

关于iphone-sdk-3.0 - 带有核心数据的首字母部分标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450399/

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