使用NSComparisonResult过滤后,NSMutableArray不会添加对象?

时间:2013-02-14 20:23:02

标签: ios objective-c nsarray uisearchbar uisearchdisplaycontroller

对于非特定问题感到抱歉,这是我的第一个问题,我无法找到我做错的事情。

我有一个UITableView,它列出了名为“WorkoutPlan”的类的某些对象的名称属性。现在我希望用户能够使用UISearchBar搜索这些名称。由于我是Objective-C的新手,因此我已经花了一些时间来找到一种方法。我在Apple的示例代码中找到了一个解决方案。该项目的名称是“表搜索”。它表明如果- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString被调用,它本身应该调用一些进行过滤的方法。以下是该方法的实现:

- (void)filterContentForSearchText:(NSString*)searchText
{
    [searchArray removeAllObjects];

    for (WorkoutPlan* somePlan in workoutPlanArray)
    {
        NSComparisonResult result = [somePlan.name compare:searchText options:NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])];

        NSLog(@"result:%d", result);

        if (result == NSOrderedSame)
        {
            [searchArray addObject:somePlan];
        }
    } 

    NSLog(@"count:%i", searchArray.count);
}

现在我的问题是搜索仍然无效,因为“searchArray”保持为空,尽管我输入的字母与很多对象的名称相匹配。当我记录NSOrderedResult时,控制台输出为“0”,代表“NSOrderedSame”。

感谢您的帮助,我真的非常绝望。

0 个答案:

没有答案