私のアプリで検索機能に問題があり、forループに問題があるとここに掲載されています前の投稿から下のリンクに見ることができる私のコード。検索NSMutableArrayクラッシュrangeOfString:options:]:インスタンスに送信されたセレクタが認識されない
Iphone Programming XML Parser NSMutableArray
これは、同じ問題を持つ他の人からのコメントであると私はちょうど、検索配列内のオブジェクトは、NSArrayのオブジェクトである」、問題は私のプロジェクトのために同じであるかどうかを知るために、この手段をしたいと思います彼らはセレクタrangeOfStringに応答しない:それはNSStringメソッドである "と私はこのようなソリューションを使用することができます。ここで
for(NSArray *array in searchArray)
{
// NSString *str = [array objectAtIndex:0];
PatientInfoObject *obj = [array objectAtIndex:0];
NSString *str = obj.id;
// to be sure
if([str isKindOfClass:[NSString class]])
{
NSRange titleResultsRange = [str rangeOfString:searchText options:NSCaseInsensitiveCompare];
if(titleResultsRange.length != 0)
{
[copyListOfItems addObject:str];
}
}
else
{
// this shouldn't have happened, log something to console
NSLog(@"**Object in array is not of type NSString**");
}
}
は私のUISearchBarのためのコードであり、そして質問の冒頭でリンク上で述べたように、あなたが私はそれを掲載する予定何かが必要な場合は、関連するコードのほとんどにあります。
おかげ ブラッド
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchtext {
if ([searchtext length] == 0) {
[self toggleToolBarButtons:NO];
[[self rssParser]startProcess];
}
else {
for (NSString * string in _rssParser.rssItems) {
NSRange r = [string rangeOfString:searchtext options:NSCaseInsensitiveSearch];
if (r.location != NSNotFound) {
[_rssParser.rssItems addObject:string];
}
}
}
[[self tableView]reloadData];
}
本当にありがとうRayですが、今はすべて捕まえられていません例外は列挙されている間に突然変異しました。私が検索しているメンバーはblogRSS.titleです。 – Bradrob
私はループ内でmodをしないようにコードを修正しましたが、なぜこれをやっているのか尋ねなければなりません。配列内で一致するものを見つけていれば、同じ配列に別のものを追加します。したがって配列に(赤、青、緑、黄)が含まれていて、青で一致するものが見つかった場合は、青を追加してから(赤、青、緑、黄、青)になります。それは本当にあなたが望むものですか? – Rayfleck
私は何をしようとしているのは、インターネット上のチュートリアルに従っていますが、私はそれを調整しようとしているので、私は一緒に練習しているプロジェクトのタイプのために具体的に書かれていません。しかし、私が達成しようとしているのはuisearchbarのためです。配列を繰り返し処理し、一致するsearchTextをフィルタリングしようとしていますが、わかりやすく表示できません。上記の質問に変更されたコードを追加しました。 – Bradrob