在 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 上搜索某些内容