0

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

4

0 に答える 0