recherche

Maison  >  Questions et réponses  >  le corps du texte

iOS NSPredicate 过滤排序

-(void)updateSearchResultsForSearchController:(UISearchController *)searchController {
    NSString *searchString = [self.searchController.searchBar text];
    if (searchString.length == 0) {
        return;
    }
    
    NSPredicate *preicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@", searchString];
    if (self.searchResult!= nil) {
        [self.searchResult removeAllObjects];
    }
    
    //过滤数据
    self.searchResult= [NSMutableArray arrayWithArray:[self.datasource filteredArrayUsingPredicate:preicate]];
    //刷新表格
    [self.tableView reloadData];
}

看例子的的排序都是对简单的字符串数组进行的筛选排序,对于字符串里是对象,按对象里的某个字符串进行筛选,这个可以做到吗?如果不能做到,那么一般用什么办法?以前都是直接用SQL来做的,这次需求里没用这个,能否直接在内容里进行这个
巴扎黑巴扎黑2771 Il y a quelques jours399

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯2017-04-18 09:47:32

    C'est-à-dire que le tableau contient des objets modèle, puis correspond à la chaîne d'un certain attribut dans l'objet modèle ?
    Faire correspondre les modèles avec un caractère dans le champ de nom du modèle
    NSPredicate pre = [NSPredicate predicateWithFormat:@"name LIKE 'a*'"];

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:47:32

    Il suffit de prendre en charge KVC. Si un seul objet du tableau est une personne, pour vérifier si le nom est inclus, utilisez @"SELF.name CONTAINS[c] %@"

    répondre
    0
  • Annulerrépondre