如何解决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];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。