Objective c NSPredicate搜索对象
我必须通过引入搜索关键字并在运行时进行过滤来过滤对象数组。我该怎么做Objective c NSPredicate搜索对象,objective-c,nspredicate,Objective C,Nspredicate,我必须通过引入搜索关键字并在运行时进行过滤来过滤对象数组。我该怎么做 //this is my Article class @property int intID; @property (nonatomic, strong) NSString *strName; @property (nonatomic, strong) NSString *strTitle; @property (nonatomic, strong) NSString *strDescription; @property (
//this is my Article class
@property int intID;
@property (nonatomic, strong) NSString *strName;
@property (nonatomic, strong) NSString *strTitle;
@property (nonatomic, strong) NSString *strDescription;
@property (nonatomic, strong) NSString *lang;
@property (nonatomic, strong) NSString *dateDate;
@property (nonatomic, strong) NSData *dataPicture;
@property (nonatomic, strong) NSString *link;
@property (nonatomic, strong) NSString *gallery;
@property int flag;
@property int subcat;
@property int cat;
@property int idpic;
我必须选择包含引入字符串的文本的文章
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"strName MATCHES '.*(%@).*'", searchText];
NSLog(@"%@", [NSString stringWithFormat:@"strName MATCHES '.*%@.*' OR strTitle MATCHES '.*%@.*'", searchText, searchText]);
articleSearchArray=[NSMutableArray array];
articleSearchArray = [NSMutableArray arrayWithArray:[allArticleArr filteredArrayUsingPredicate:predicate]];
for(Article *article in articleSearchArray)
{
NSLog(@"Article id is %i", article.intID);
}
[mytableView reloadData];
}
这一个将使用不区分大小写的比较(用[c]
表示),获取其strName
属性包含的searchText
字符串的数组中的所有对象,我想这就是您要查找的对象。
之后,您只需将充当数据源的NSArray
设置为筛选后的数据源,然后执行reloadData
这一个将使用不区分大小写的比较(用[c]
表示),获取其strName
属性包含的searchText
字符串的数组中的所有对象,我想这就是您要查找的对象。
之后,您只需将充当数据源的NSArray
设置为筛选后的数据源,然后执行reloadData
[NSPredicate predicateWithFormat:@"strName contains[c] '%@'", searchText];