警告在iPhone中使用逻辑&&常量

我使用这段代码来比较两个string:

NSComparisonResult result = [cellTitle compare:searchText options:(NSCaseInsensitiveSearch && NSLiteralSearch)]; 

但xcode显示使用逻辑&&的警告,并提供使用按位&,按位&比较不返回正确的结果。

我该如何解决?

您正在尝试将位掩码的两个部分组合在一起。 您可以使用按位OR或XOR运算符,或为此添加 – |^+ 。 规范将是|

你应该这样做:

  NSComparisonResult result = [cellTitle compare:searchText options:(NSCaseInsensitiveSearch | NSLiteralSearch)]; 

这些标志是一个只有一个1的二进制数字。 所以当你做一个逻辑|时,你会得到两者的“混合”(例如:1000 | 0100 => 1100),这样你可以设置多个标志作为选项。