可能重复:
iOS 搜索结果顺序
当我使用UISearchBar在UITableview中搜索某些东西时,在UISearch中进行搜索后,我的 UITableview 中没有出现任何内容。在搜索我的表之前显示我在 PList 中的所有数据。当我在这样的格式中有 Plist数据时,我正面临搜索问题.as my Sreenshot show below
我的代码在下面给出。
- (void)viewDidLoad
{
[super viewDidLoad];
pArray = [[NSArray alloc] init];
listOfItems = [[NSMutableArray alloc] init];
NSDictionary *dic = [NSDictionary dictionaryWithObject:pArray forKey:@"Countries"];
[listOfItems addObject:dic];
sArray = [[NSMutableArray alloc] init];
}
-(void) viewWillAppear:(BOOL)animated{
NSString *path = [[NSBundle mainBundle] pathForResource:@"Songs"
ofType:@"plist"];
NSDictionary *dic = [[NSDictionary alloc] initWithContentsOfFile:path];
pArray = [[dic objectForKey:@"A"]retain];
[tableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (searching){
return [sArray count];
}
else {
return [pArray count];
}
}
- (void) searchTableView
{
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listOfItems)
{
NSArray *array = [dictionary objectForKey:@"Countries"];
[searchArray addObjectsFromArray:array];
}
for (NSString *sTemp in searchArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[sArray addObject:sTemp];
}
[searchArray release];
searchArray = nil;
}
当我在searchTableView方法中使用断点时,字符串SearchText显示它当前拥有的文本,但我的 NSArray数组显示零对象和我的 NSString sTemp显示变量不是 CFString。可以帮助修复它。提前谢谢。