3

の配列がありますNSNumber。例: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])];

結果にsのサブセット(この場合は1)が実際に必要なNSNumber場合、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 に答える