首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SUBQuery NSPredicate

SUBQuery NSPredicate
EN

Stack Overflow用户
提问于 2014-04-21 14:04:52
回答 3查看 597关注 0票数 0

我有一个字典阵列,电话号码是其中的一个关键,

代码语言:javascript
运行
复制
{
        Email = "ryuiioo@uioo.njk";
        Firstname = Sourish;
        Lastname = Sam;
        Middlename = S;
        phonenumbers =         (
                        {
                Home = 3452345345;
                Main = 4985739804;
                Mobile = 3567567741;
                Other = 5769875698;
                Test = 2290834709;
                Testing = 9336664648;
                Work = 4523523453;
                iPhone = 3453245234;
            }
        );
        recordID = 66;
    }

我使用这个字符串"stringToSearch".搜索数组这就是我在搜索时试图获取名字的方式。

代码语言:javascript
运行
复制
NSMutableArray *allPredicatesArray = [NSMutableArray new];
NSPredicate *firstNamePredicate = [NSPredicate predicateWithFormat:@"SELF.Firstname beginswith[c] %@",stringToSearch];
NSArray *firstNameFilteredArray = [self.recordsMutableArray filteredArrayUsingPredicate:firstNamePredicate];
[allPredicatesArray addObjectsFromArray:firstNameFilteredArray];

现在,我可以使用谓词--使用NSpredicates搜索“移动”号码

EN

回答 3

Stack Overflow用户

发布于 2014-04-21 15:09:44

"phonenumbers“是一个数组,因此您必须在谓词中使用"ANY”:

代码语言:javascript
运行
复制
NSString *numberToSearch = @"3567567741";
NSPredicate *mobileNumberPredicate = [NSPredicate predicateWithFormat:@"ANY phonenumbers.Mobile BEGINSWITH %@", numberToSearch];

假设数字存储为字符串。

票数 1
EN

Stack Overflow用户

发布于 2014-04-21 16:16:27

如果电话号码实际上不是一个字典数组,我认为您需要的是谓词字符串SELF.phonenumbers.Mobile beginswith[c] %@"

如果它实际上是一组字典,那么下面的内容就可以了:

代码语言:javascript
运行
复制
@"SUBQUERY(phonenumbers, $x, $x.Mobile BEGINSWITH %@).@count > 0"
票数 1
EN

Stack Overflow用户

发布于 2014-04-21 14:12:04

只需尝试使用以下代码:

代码语言:javascript
运行
复制
NSPredicate *predicateProduct = [NSPredicate predicateWithFormat:@"Mobile BEGINSWITH[cd] %@", stringToSearch];
NSArray *filteredArray = [self.listOfProducts filteredArrayUsingPredicate:predicateProduct];
NSLog(@"%@", filteredArray);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23199029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档