搜索栏控制器 - 搜索结果时崩溃

时间:2011-09-29 10:32:52

标签: iphone objective-c xcode sdk uisearchbar

我正在实现搜索栏控制器来搜索表格视图。下面执行搜索的方法代码崩溃,错误为“ - [__ NSArrayM rangeOfString:options:]:无法识别的选择器发送到实例0x65558e0”

locationInfo数组是一个包含26个数组的数组,每个数组都包含许多由字符串组成的对象。

有人可以建议代码崩溃的原因吗?

谢谢。

- (void)handleSearchForTerm:(NSString *)searchTerm
{
[self setSavedSearchTerm:searchTerm];

if ([self searchResults] == nil)
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [self setSearchResults:array];
    [array release], array = nil;
}

[[self searchResults] removeAllObjects];

if ([[self savedSearchTerm] length] != 0)
{
    for (NSString *currentString in [self locationInfo])
    {
        if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            [[self searchResults] addObject:currentString];
        }
    }
}
}

2 个答案:

答案 0 :(得分:2)

如您所述,“locationInfo”是包含26个数组的数组, 所以, [self locationInfo]中的currentString只返回一个数组,所以尝试写下面的内容:

for([self locationInfo]中的NSArray * currentArray)

{
for (NSString *currentString in currentArray)
{
    if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location !=  NSNotFound)
    {
        [[self searchResults] addObject:currentString];
    }
}

}

或类似的东西

答案 1 :(得分:0)

根据您获得的错误,似乎[self locationInfo]会返回一个数组(NSArray),而不是您期望的字符串(NSString)。

相关问题