当我们获取请求时,为什么我们使用Like代替==?

时间:2011-05-10 11:19:37

标签: objective-c xcode xcode4

喜欢

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",

        attributeName, attributeValue];

为什么不

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@",

        attributeName, attributeValue];

1 个答案:

答案 0 :(得分:2)

老实说,你只是遵循创作者制作的模式。他们可以使用==实现它,但它没那么明显。通常,==意味着完全等于,在引用中是相等的。这是一种模式匹配,因此您希望找到“喜欢”模式的项目,不一定等于模式。

NSPredicate使用==运算符的支持,但其运行方式与like运算符不同:

NSPredicate *newPredicate = [NSPredicate predicateWithFormat:@"anAttribute == %@", [NSNumber numberWithBool:aBool]];
NSPredicate *testForTrue = [NSPredicate predicateWithFormat:@"anAttribute == YES"];