在我的iPhone应用程序中,我正在尝试在Tableview中实现UISearchBar

时间:2015-03-31 09:56:18

标签: ios objective-c iphone cocoa-touch

当数组中的搜索值得到< __ NSArrayM:>在被列举时被突变。我正在使用此代码。

NSInteger strlen=[searchText length];


for (NSString *pStr in pArrBusinessName ) {

    NSRange nameRange = [pStr rangeOfString:searchText options:NSCaseInsensitivePredicateOption];

    if(nameRange.location != NSNotFound) {

        if (strlen == 1) {
            pArrFilteredTableData = pArrBusinessName;
        } else {

            if ([pStr isKindOfClass:[NSNull class]]) {
                NSLog(@"NSNull isKindOfClass called!");
            }


            if (![pStr isKindOfClass:[NSNull class]]) {

                [pArrFilteredTableData addObject:pStr];

            }
        }

    } else {

        if ([pArrFilteredTableData count] == 0) {

        }

    }

    [pTblDetails reloadData];
}

2 个答案:

答案 0 :(得分:1)

更改此代码:

pArrFilteredTableData = pArrBusinessName;

对此;

pArrFilteredTableData = [pArrBusinessName mutableCopy];

确保pArrFilteredTableData是NSMutableArray(如果它尚未

答案 1 :(得分:0)

在搜索其中的内容时,您似乎正在对主阵列进行修改。如果将搜索结果保存在单独的可变数组中而不是改变使用您创建列表的主数组,那将是一件好事。过滤从主阵列中搜索到的记录并将其保存在搜索数组中。