关于 NSPredicate 的简单问题。我正在尝试使用“传入”值构建我的谓词,如下所示:
NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"%@ == %@",key,[changesDict valueForKey:@"Id"] ];
但是,我无法让它正常工作。如果我插入我通过的实际值,它确实有效。所以这有效:
NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"contactId == %@",[changesDict valueForKey:@"Id"] ];
(注意我插入了contactId,而不是前面的例子,我通过相同的名称传递了一个字符串)
为了排除故障,我对两个谓词进行了 NSLogged,查看了它们的描述,它们是不同的。我将在下面展示它们。
这是工作的
2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] contactId == "5878"
这是不工作的
2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] "contactId" == "5878"
所以我可以看到它正在插入一个字符串,我真的只想要稍后在获取请求中使用的属性的名称。但是有没有办法通过传入值来实现这一点?