3

我有一个NSNumbers数组,例如:10015、12313、10016

我想检查数组是否包含我在 searchBar 中输入的整数。

我的代码:

NSPredicate *resultPredicate = [NSPredicate 
    predicateWithFormat:@"SELF CONTAINS[c] %d", [searchText intValue]];


self.searchResults = [newArr filteredArrayUsingPredicate:resultPredicate];
4

2 回答 2

9

如果您只需要数组是否包含它的布尔值,那么您就想要。

self.searchResults = [newArr containsObject:@([searchText intValue])];

如果您实际上想要NSNumber结果中的 s 子集(在本例中为 1),则 contains 将不起作用。必须像这样检查每个值的相等性NSNumber......

NSPredicate *resultPredicate = [NSPredicate 
    predicateWithFormat:@"SELF == %d", [searchText intValue]];
于 2013-01-06T20:39:05.137 回答
0

如果您只想知道数字是否在数组中,则无需使用谓词:

BOOL occurs = [newArr containsObject:[NSNumber numberWithInt:[searchText intValue]]];

应该这样做。

于 2013-01-06T20:30:14.607 回答