0

したがって、基本的には、UISearchBarを使用して名前の配列を検索します。アレイ内の名前の形式は次のとおりです。

[ファーストネーム]([セカンドネーム])[ラストネーム]

使用する

 if (![string rangeOfString:seachTextPart].location == NSNotFound) 

UISearchBarに名のみを入力して名前を検索することができました。しかし、スペースに入るとすぐに結果は得られません。

また、姓だけを入力して検索できるようにしたいです。誰か助けてくれませんか?ありがとう

4

2 に答える 2

1

あなたのフォーマットが以下であると仮定します:name = @"[John]([James])[Smith]";

検索[name rangeOfString:@"John"]すると、見つかった結果が得られます。

名前がないため、検索[name rangeOfString:@"John "]すると見つかりません@"John "

しかし、この場合、[name rangeOfString:@"Smith"]見つかった結果が得られます。

これを試してください:すべてのスペースと小文字の文字列を削除します

   searchTerm = [[searchTerm stringByReplacingOccurrencesOfString:@" " withString:@""] lowercaseString];
   NSRange searchName = [[name lowercaseString] rangeOfString:searchTerm];

テストしたい場合は、これを実行するだけです。」 if (searchName == 0) //it does not match

于 2012-04-13T20:08:28.280 に答える
0

バイトのコードは、「JohnSmith」と入力しない限り機能します。より堅牢なものが必要な場合は- (NSArray *)componentsSeparatedByString:(NSString *)separator、配列内の任意の文字列を使用して検索できます。したがって、「John Smith」と入力すると、すべてのJohnsとすべてのSmithが返されます。

ここ:

NSArray *theTerms = [searchTerm componentsSeparatedByString:@" "];

次に、すべてのforループを実行しtheTerms、名前と照合して、検索語を含む名前を配列に追加して表示します。

于 2012-04-13T21:42:19.417 に答える