0

テーブルビューに SearchBar 機能を追加しました (SearchBar を TableView ではなくビューにドラッグしたことに注意してください)。NSRange 関数に到達すると、例外エラーをスローしてプログラムをクラッシュさせる次のサブプロセスがあります。以下は私のSearchBar方法です。エラーの原因となっている可能性のあるものは何かわかりますか? (以下にフォームのデバッグ画面の抜粋を含めました)

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if (searchText.length==0){
    boolIsFiltered = NO;
}
else
{
    boolIsFiltered = YES;
    arrayFilteredproducts = [[NSMutableArray alloc]init];

    for (NSString *str in arrayProducts) {
        NSRange stringRange  = [str rangeOfString:searchText options:NSCaseInsensitiveSearch];
        if (stringRange.location!=NSNotFound){
            [arrayFilteredproducts addObject:str];
        }
    }
}

}

そして、これが を作成するメソッドですarrayProducts

- (void)request:(SFRestRequest *)request didLoadResponse:(id)jsonResponse {
NSMutableArray *records = [jsonResponse objectForKey:@"records"];
arrayProducts = records;
[self.tableProducts reloadData];

}

デバッグ画面からのダンプは次のとおりです。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryM rangeOfString:options:]: unrecognized selector sent to instance 0x176c5a80 First throw call stack:

(0x30076f8b 0x3a5166af 0x3007a927 0x3007920b'

4

2 に答える 2

0

答えは例外メッセージにあります:

'-[__NSDictionaryM rangeOfString:options:]: 認識されないセレクター

strこれは、それが であると言っていNSDictionaryます。呼び出す前に、それstrが実際にのインスタンスであることを確認する必要がありますNSStringrangeOfString:options:

于 2013-09-16T23:11:41.153 に答える