【发布时间】:2014-03-11 04:42:00
【问题描述】:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (searchText.length == 0)
isActive = NO;
else
isActive = YES;
NSMutableArray *tmpSearched = [[NSMutableArray alloc] init];
NSMutableArray *tmpSearchedNumber = [[NSMutableArray alloc]init];
NSUInteger count1=0;
//NSUInteger count2=0;
for(count1=0;count1<[tableStationData count] || [tableData count];count1++)
{
NSRange range = [[tableStationData objectAtIndex:count1] rangeOfString:searchText options:NSCaseInsensitiveSearch];
NSRange range1= [[tableData objectAtIndex:count1]rangeOfString:searchText options:NSCaseInsensitiveSearch];
if(range.location !=NSNotFound || range1.location != NSNotFound)
{
[tmpSearchedNumber addObject:[tableStationData objectAtIndex:count1]];
[tmpSearched addObject:[tableData objectAtIndex:count1]];
}
}
其中 tableData 数组大小为:2530 和相同的数组大小 tableStationData。当我在 UISearchbar 上搜索时,编码会出错。
【问题讨论】:
-
您的 for 循环说取 tableStationData 计数或 tableData 计数。并且在循环中,您正在为两者取范围。这有点棘手。 tableData 和 tableStationData 是否包含相同数量的元素?如果不是,那么这是您无法获得这样的范围的问题,您应该在循环中添加一些条件。如果我的猜测是正确的,请告诉我我会发送代码
-
是的,两个数组都有相同的元素,当我在 uisearchbar 中搜索时,它会给出错误。 @CharanGiri
标签: ios iphone objective-c uitableview uisearchbar