NSPredicate无法使用字典数组

问题描述

| 我有一个NSPredication格式如下:
@\"Status CONTAINS[cd] shipped\"
我有一个字典数组,这是一个示例:
{
        {
        Category = \"Category 4\";
        Comp = \"Category 4\";
        Depth = 02;
        Grade = New;
        Length = 02;
        Location = \"Thousand Oaks,CA\";
        Name = \"3ply Mat\";
        Owner = \"Owner 3\";
        PUP = 2;
        Status = Shipped;
        \"Unit Number\" = 20110507113852351;
        Width = 02;
    },{
        Category = \"Category 4\";
        Comp = \"Category 4\";
        Depth = 02;
        Grade = New;
        Length = 02;
        Location = \"Thousand Oaks,CA\";
        Name = \"3ply Mat\";
        Owner = \"Owner 3\";
        PUP = 2;
        Status = Shipped;
        \"Unit Number\" = 20110516094641587;
        Width = 02;
    }
)
但是它返回一个空数组。我究竟做错了什么?谢谢     

解决方法

        你要:
[NSPredicate predicateWithFormat:@\"Status =[cd] \'shipped\'\"];
要么:
[NSPredicate predicateWithFormat:@\"Status =[cd] %@\",@\"shipped\"];
您的问题是谓词格式应为
shipped
,而应为
\'shipped\'
。缺少单引号导致它试图将
[dictionary valueForKey:@\"Status\"]
[dictionary valueForKey:@\"shipped\"]
进行比较,而不是与字符串文字
@\"shipped\"
进行比较。     ,        您可以对字符串使用关键字
MATCHES
CONTAINS
等。由于状态不是字符串,我想您需要像这样检查它,
[NSPredicate predicateWithFormat:@\"Status = %d\",Shipped];
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...