为什么这个谓词会返回结果:
predicate= [NSPredicate predicateWithFormat:@"itemsString like '*{4160366}*'"];
虽然这个谓词返回空数组
predicate= [NSPredicate predicateWithFormat:@"itemsString like '*{%@}*'",[NSString stringWithString:@"4160366"]];
我让我发疯了
答案 0 :(得分:1)
构建谓词时,predicateWithFormat会在执行变量替换时自动添加引号。所以你的(第二个)谓词最终看起来像这样:
itemsString like '*{"4160366"}*'"
。
注意额外的报价集。
将其更改为:
predicate= [NSPredicate predicateWithFormat:@"itemsString like %@",[NSString stringWithFormat:@"*{%@}*", @"4160366"]];
它应该有用。
(请注意,我没有使用stringWithString
而是使用@""
来做同样的事情。)