NSString要素が複数ある配列があり、検索バーがあるビューもあります。ユーザーが検索フィールドに何を書き込むかを検索したい各NSString要素の部分文字列。 NSString要素に部分文字列が含まれている場合は、新しい配列に追加します。私はコードでこれをやろうとしましたが、問題なく動作しますが、オブジェクトを追加しています。私はすでにデリゲートを自己に設定しています。NSString検索バーで部分文字列を検索する定数
//.h @interfaceクラス1
@property(strong, nonatomic) NSMutableArray *allExercisesNames;
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@property(strong, nonatomic) NSMutableArray *foo;
@end
//.m
@implementation class1
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
for(int i = 0; i < _allExercisesNames.count;i++)
{
if([[_allExercisesNames objectAtIndex:i] rangeOfString:searchBar.text].location != NSNotFound)
{
if(_foo == nil)
{
_foo = [[NSMutableArray alloc]initWithObjects:[_allExercisesNames objectAtIndex:i], nil];
[self.gridView reloadData];
}
else
{
[_foo addObject:[_allExercisesNames objectAtIndex:i]];
[self.gridView reloadData];
}
}
}
if([searchBar.text isEqualToString:@""] || searchBar.text==nil)
//![_allExercisesNames containsObject:searchBar.text
{
_foo = nil;
[self.gridView reloadData];
}
}
メソッドが呼び出されていますか?メソッドでブレークポイントを設定しようとしましたが、何が起こったのか見てきましたか? –
はい、関数が呼び出されます、私はそれが並べ替えることがわかりますが、その後、foo配列に追加を続けるので、ビューの中のいくつかの要素を参照してください –