Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSPredicate predicateWithFormat传入属性名称_Ios_Core Data_Nspredicate - Fatal编程技术网

Ios NSPredicate predicateWithFormat传入属性名称

Ios NSPredicate predicateWithFormat传入属性名称,ios,core-data,nspredicate,Ios,Core Data,Nspredicate,关于NSPredicate的简单问题。我试图用“传入”值构造谓词,如下所示: NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"%@ == %@",key,[changesDict valueForKey:@"Id"] ]; 然而,我一直无法让它正常工作。如果我插入我传递的实际值,它确实起作用。所以这是可行的: NSPredicate* currentPredicate = [NSPredicate predi

关于NSPredicate的简单问题。我试图用“传入”值构造谓词,如下所示:

NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"%@ == %@",key,[changesDict valueForKey:@"Id"] ];
然而,我一直无法让它正常工作。如果我插入我传递的实际值,它确实起作用。所以这是可行的:

NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"contactId == %@",[changesDict valueForKey:@"Id"] ];
(请注意,我插入了contactId,与上一个示例相反,在该示例中,我传递了一个同名字符串)

为了排除故障,我记录了两个谓词的描述,它们是不同的。我将在下面展示它们

这是正在工作的

2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] contactId == "5878"
2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] "contactId" == "5878"
这是不工作的一个

2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] contactId == "5878"
2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] "contactId" == "5878"
所以我可以看到它插入了一个字符串,我只需要属性的名称,稍后我将在fetch请求中使用它。但是有没有办法通过传递值来实现这一点呢?

对于键或键路径,您必须使用
%K
格式:

[NSPredicate predicateWithFormat:@"%K == %@", key, [changesDict valueForKey:@"Id"]];

(请参阅“谓词编程指南”中的内容)

完美!链接也很有用。谢谢