次のコードを使用して、配列内でUISearchBarに入力されたフレーズを検索し、フレーズがあったインデックスのコンテンツを追加しますテーブルビューに表示される配列に含まれています。フレーズを検索して検索し、その前後にある2つの単語を取得します
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)enteredSearchText{
if ([enteredSearchText length] == 0) {
[wholeTextOfDoaasLive removeAllObjects]; //wholeTextOfDoaasLive is an NSMutableArray
}
else{
[wholeTextOfDoaasLive removeAllObjects];
for (NSString * string in AllWholeText) {//AllWholeText is an NSMutableArray
NSRange r = [string rangeOfString:enteredSearchText options:NSCaseInsensitiveSearch];
if (r.location != NSNotFound){
[wholeTextOfDoaasLive addObject:string];
}
}
}
[_searchResultsTable reloadData];
}
しかし、AllWholeText配列のすべてのインデックスは、大量のテキストが含まれていると私はwholeTextOfDoaasLive配列に(検索フレーズがで見つかったことを)全体のオブジェクトを追加する必要はありません。その代わりに、見つかったフレーズと2つの単語の前後を、私のwholeTextOfDoaasLive配列に追加したいだけです。どうやってやるの?
私はそれが簡単な問題ではないと思います。より簡単な解決策は、 "upTo10WordsBefore_SearchedText_upTo10WordsAfter"の代わりに "... upTo10CharBefore_SearchedText_upTo10CharAfter ..."を表示することです。複雑な部分の1つは、 'enteredSearchText'が" i the "で、" Hi There "のような文を持っていれば(それはもっと多くの単語を組み合わせるなどです) – Larme