2012-03-29 13 views
0

これは私の現在の検索コードです。iOS - テーブルビューの検索

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope { 
    [filteredList removeAllObjects];   
    for(Location *item in list) 
    { 
     NSRange result = [item.title rangeOfString:searchText options:NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])]; 
     if(result.location != NSNotFound) 
     { 
      [filteredList addObject:item]; 
     } 
    } 
} 

タイトルのどの部分にも一致するようにこれを変更するにはどうすればよいでしょうか?

例:

瞬間に、私は「ラスベガス」を検索すると、「ラスベガス」は、リストに表示されますが、私は「ベガス」を検索するとき、それはしていません。

私は、検索用語「ベガス」が「ラスベガス

おかげで、代わりにrangeOfStringの アシュリー

+0

、あなたがfilteredArrayUsingPredicate '経由配列で' NSPredicate'sの使用を開始する場合があります

それともrangeOfStringを使用したい何らかの理由であれば

'。人生は少し楽になります。プレディケート文字列構文のAppleリファレンスは次のとおりです:[述語フォーマット文字列構文](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-SW1) – Gobot

答えて

1

使用rangeOfString:options:に戻って来てほしい:オプション:範囲:.文字列の先頭に検索を制限するのはrangeパラメータです。オプション:範囲:その後、範囲としてこれを使用します。NSMakeRange(0, [item.title length])だけFYI

+0

私はそれがすべてであるとは信じられません。ありがとう –

関連する問題