filterContentForSearchText方法出错

时间:2015-01-21 03:29:32

标签: uisearchbar

我正在尝试向我的应用添加搜索栏。我在这里关注AppCoda教程:http://www.appcoda.com/search-bar-tutorial-ios7/当用户开始在搜索栏中输入时,应用程序停止在该行运行:

NSArray *resultsFromTheSearch = [profileNames filteredArrayUsingPredicate:resultPredicate];

这是完整的方法

- (void)filterContentForSearchText:(NSString*)searchText scope: (NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
    NSMutableArray *profileNames = [NSMutableArray array];
    for (PFUser *user in self.profiles) {
        [profileNames addObject:user.username];
    }

    NSArray *resultsFromTheSearch = [profileNames filteredArrayUsingPredicate:resultPredicate];

    for (NSString *nameStr in resultsFromTheSearch) {
        PFQuery *userQuerySearch = [PFUser query];
        [userQuerySearch whereKey:@"username" equalTo:nameStr];
        [userQuerySearch findObjectsInBackground];
    }
}

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我认为问题在于你的谓词。因为,您已经在数组中添加了名称,您的谓词应该是

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self contains[c] %@", searchText];