【发布时间】:2013-04-27 19:54:12
【问题描述】:
我正在尝试编写一个NSPredicate 以使用此字符串“193e00a75148b4006a451452c618ccec”获取具有 my_column 值的行,但出现以下崩溃。
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'无法解析格式 字符串“my_column=193e00a75148b4006a451452c618ccec”'
我的谓词陈述
fetchRequest.predicate=[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"%@==\"%@\"",attributeName,itemValue]];
也试过了
fetchRequest.predicate=[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"%@ == %@",attributeName,itemValue]];
这个
fetchRequest.predicate=[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"%@ = %@",attributeName,itemValue]];
还有这个
fetchRequest.predicate=[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"%@=\"%@\"",attributeName,itemValue]];
请帮忙。
我在尝试 Martin R 的回答时发现了这一点
fetchRequest.predicate=[NSPredicate predicateWithFormat:@"%@==%@",attributeName,itemValue];
我传递的attributeName 带有一个'',所以我去掉了attributeName 并对其进行了硬编码,然后它就可以正常工作了。
【问题讨论】:
-
在比较字符串时使用 LIKE 而不是 '='!
-
使用占位符时不需要引号。
-
@VinayakKini:通常不应该使用“LIKE”来比较字符串,因为 LIKE 会使用通配符匹配“*”和“?”有特殊意义。
-
@MartinR 感谢您的信息!
标签: ios core-data nspredicate