gpt4 book ai didi

ios - 用NSObject过滤NSArray

转载 作者:行者123 更新时间:2023-12-01 17:49:27 24 4
gpt4 key购买 nike

我想在tableView中使用搜索栏。
我有一个带人的NSArray(NSObject)。在cellForRow中,我使用以下代码:

Person *person = [[self.sectionedPersonName objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
cell.textLabel.text = person.fullName;

对于searchBar,此代码:
- (void)searchForText:(NSString *)searchText {
if (searchText.length > 0) {
searchBar = YES;
} else {
searchBar = NO;
}
NSLog(@"%@", self.sectionedPersonName);
NSPredicate *predicate; = [NSPredicate predicateWithFormat:@"SELF.fullName beginswith[c] %@", searchText];
self.searchResults = [self.sectionedPersonName filteredArrayUsingPredicate:predicate];
}
self.sectionedPersonName包含以下内容:
(
(
"<Person: 0x7fc0f6012650>"
),
(
),
(
),
(
"<Person: 0x7fc0f600f8a0>",
"<Person: 0x7fc0f60132e0>"
),
(
),
(
),
(
),
(
"<Person: 0x7fc0f6012d80>"
),
(
),
(
"<Person: 0x7fc0f6012b30>"
),
(
"<Person: 0x7fc0f6010100>"
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
),
(
)
)

所以我的问题是如何在此上创建NSPredicate?
我已经尝试过了,但是没有用:
NSPredicate *predicate; = [NSPredicate predicateWithFormat:@"SELF.fullName beginswith[c] %@", searchText];

错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do a substring operation with something that isn't a string (lhs = (
"Anna Haro"
) rhs = )'

最佳答案

您没有一群人,只有一群人。因此,您不能简单地过滤数组,因为所有比较实际上都是在尝试将字符串数组与字符串进行比较。这就是出现“奇怪”结果和崩溃的原因。

最好的选择是创建自己的循环以遍历外部数组,然后在每个内部数组上运行谓词。将得到的过滤后的数组添加到一个保存整个结果的新可变数组中。

关于ios - 用NSObject过滤NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672296/

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