0

私の問題は、私がそれについて何も見つけていないので、誰にとっても問題ではないようです。それほど大きな問題ではないかもしれませんが、私にとってはそうです。

この MutableArray には、XML ファイルからの大量のデータが格納されています。-Name -Age -Address 検索は Name に対して行われ、フィルタリングは今のところうまく機能しています。

私がしているのは、rangeOfString で配列を検索することですが、それは文字列 (-Name) のみを返し、元の配列のようなコンテンツを含む配列は返しません。現在は文字列のみであるためです。

どうすればこれを達成できますか?

それが私のこれまでの検索です

if ([[self searcher] length] != 0)
{
    for (NSString *currentString in [self listOfContent])
    {
        if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            [[self filteredListOfContent] addObject:currentString];
        }

searcher は SearchBar の文字列です。それとも他にもっと効率的な方法がありますか、それとも MutipleArry の任意の値を検索することは可能ですか?!?

どんなアイデアや提案も大歓迎です

コードをこれに変更しました

NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];

for (NSDictionary *dictionary in listOfContent)
{
    //NSArray *array = [dictionary objectForKey:LNAME];
    [searchArray addObject:dictionary];

}

for (NSString *sTemp in searchArray)
{
    NSLog(@"array %@", searchArray);

    if ([sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch].location != NSNotFound)

        [filteredListOfContent addObject:searchArray];
}

ログはフィルターが機能しているように見えることを示していますが、このエラーが発生します

2010-10-22 16:18:09.708 TableView[6114:207] -[__NSCFDictionary rangeOfString:options:]: unrecognized selector sent to instance 0x5c3f540
2010-10-22 16:18:09.712 TableView[6114:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary rangeOfString:options:]: unrecognized selector sent to instance 0x5c3f540'

誰が問題が何であるか教えてもらえますか

それでも解決策が見つかりませんでした。コードを次のように変更しました。

NSMutableArray *searchArray = [[NSMutableArray alloc] init];

        for (NSDictionary *dictionary in contentsList)
        {
            NSArray *array = [dictionary allValues];
            [searchArray addObjectsFromArray:array];
        }
        for (NSDictionary *dict in searchArray)
        {
            if ([[dict valueForKey:@"NAME"] rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound) {
                NSLog(@"Filter %@", dict);
                [searchResults addObject:dict];
            }

今、私は値を持つ配列を持っていますが、それでもエラーが発生します

2010-10-28 16:23:46.124 TableViews[8373:207] *** Terminating app due to uncaught exception 
'NSInvalidArgumentException', reason: '-[NSCFString objectForKey:]: unrecognized selector sent to instance 0x5a5eb00'

エラーが意味すること、または私が間違ったことを誰かが説明できますか?!?

4

1 に答える 1

0
2010-10-28 16:23:46.124 TableViews[8373:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString objectForKey:]: unrecognized selector sent to instance 0x5a5eb00'

このエラーは、メッセージを送信して をNSStringであるかのように扱ったことを意味します。NSDictionary-objectForKey:

于 2010-10-28T15:55:22.257 に答える