在 NSMutableArray 中搜索字符串以显示在表中

Posted

技术标签:

【中文标题】在 NSMutableArray 中搜索字符串以显示在表中【英文标题】:Search string in NSMutableArray for showing in Table 【发布时间】:2009-09-29 13:38:59 【问题描述】:

好的,我有一个图书对象类。这有 Book.name 和 Book.id 作为扩展名。 Book.name 是 NSString。 UITableView 中应该可以搜索和列出的内容。

NSMutableArray *matchingSymptomsArray = [[NSMutableArray alloc] initWithCapacity:50];

for(NSMutableArray *letterArray in DataArray)
        for(Book *bk in letterArray) //Heres the ERROR
            NSLog(@"Uptil NEW");
            if([bk matchesSearchString:searchString])
                        //I couldnt reach here, according to debugging and Logs//
                [matchingSymptomsArray addObject:bk];
            
        
    

DataArray 是存放所有书籍的地方.. 超过一百。它是 UITableView 的主要数据源。我正在尝试搜索字符串的每个字母并将其与 Book.name 匹配,但即使在我开始之前,我也无法做到 for(Book *bk in LetterArray) //产生错误..

似乎是什么问题?

这是控制台中的错误 **** -[Book countByEnumeratingWithState:objects:count:]: 无法识别的选择器发送到实例 0x55c110 2009-09-29 06:17:41.073 智能诊断 [3897:20b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Book countByEnumeratingWithState: objects:count:]: 无法识别的选择器发送到实例 0x55c110'

有什么解决办法吗??

感谢您的帮助:)

【问题讨论】:

【参考方案1】:

试试这个:

for (id bk in letterArray)

您是否检查了 letterArray 不是 nil 或空的?

【讨论】:

【参考方案2】:

你检查过 letterArray 不是 nil 还是空吗?

【讨论】:

嗯,这很有趣.. 如果我调用 letterArray.count,它会崩溃! for(NSMutableArray *letterArray in DataArray) NSLog(@"dataarray = %d letterArray = %d", DataArray.count, letterArray.count); //它停在这里.. DataArray 被很好地填满,值为 195。但是当我向它添加 letterarray.count 时,它会以同样的错误停止!我很困惑!

以上是关于在 NSMutableArray 中搜索字符串以显示在表中的主要内容,如果未能解决你的问题,请参考以下文章

如何删除具有相同属性值但在 NSMutableArray 中有一个的所有对象

SearchBar 如何通过 NSMutableArray 进行搜索?

如何使用谓词在 NSMutableArray 上搜索某些内容

从iOS中的两个不同的NSMutableArray中删除同一行

如何搜索字符串数组

为啥我不能在 iOS 中 RemoveAllObjects 的 NSMutableArray?