重複の可能性:
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ではありません。