gpt4 book ai didi

iphone - 使用 NSPredicate 过滤 NSArray

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:02 24 4
gpt4 key购买 nike

我想过滤一组 User 对象(Userfullnameuser_id 和其他一些属性..) 根据以某个字符串开头的 firstNamelastName
我知道如何根据一个条件进行过滤:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"firstName BEGINSWITH[cd] %@", word];
NSArray* resArr = [myArray filteredArrayUsingPredicate:predicate];

这将给我所有名字以“word”开头的用户。
但是,如果我想要所有 firstName 或 lastName 以“word”开头的用户怎么办?

最佳答案

您可以使用 NSCompoundPredicate 类来创建复合谓词。

NSPredicate *firstNamePred = [NSPredicate predicateWithFormat:@"firstName BEGINSWITH[cd] %@", word];
NSPredicate *lastNamePred = [NSPredicate predicateWithFormat:@"lastName BEGINSWITH[cd] %@", word];

NSArray *predicates = @[firstNamePred, lastNamePred];

NSPredicate *compoundPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:predicates];

NSArray* resArr = [myArray filteredArrayUsingPredicate:compoundPredicate];

这是我喜欢的一种方式。

或者你可以做...

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"firstName BEGINSWITH[cd] %@ OR lastName BEGINSWITH[cd] %@", word, word];
NSArray* resArr = [myArray filteredArrayUsingPredicate:predicate];

两者都行。

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

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