我UiSearchBar
在我的 中实现了一个TableView
,我也有两个NSArray
,一个用于标题,一个用于描述。当我搜索标题数组时,它会返回正确的搜索,但是当我单击搜索附带的行时,如果单击第一行,则会得到“第 0 行”。我的问题是如何在两个数组之间建立连接,以便当搜索根据用户搜索重新排列标题时,描述数组对应于标题所在的同一行。
问问题
308 次
3 回答
0
简单地不要使用两个NSArray
s,而只使用一个自定义NSObject
对象:
@interface SomeObject : NSObject {
NSString *_title;
NSString *_description;
}
- (BOOL)matchesKeywords:(NSString *)keywords;
@end
然后,您将所有信息存储在一个类中,这就是 Obj-C 的本意。您可以轻松地执行搜索,因为对象本身就知道它是否与给定的关键字匹配,因此当您想要更改时,SomeObject
您可以轻松地在类本身中管理这些更改。
于 2010-05-04T11:01:45.263 回答
0
我曾经遇到过这个问题所以为了快速修复我做了这个: 在标题中: BOOL usingFilterArray;
在完整字典和过滤字典之间切换时,只需将上述 BOOL 分别设置为 NO 和 YES。
然后在 didSelectRowAtIndexPath 中使用“if”语句检查 usingFilterArray 的状态。休息应该很容易。(如果您仍然需要帮助,请告诉我)只有一件事,当您在过滤器字典水合后执行搜索时,如果您取消搜索,您需要确保运行此操作,否则您的应用程序将崩溃,因为水合字典不会里面有任何对象。(我假设你清理了过滤后的字典)
- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
[self.tableView reloadData];
}
伴侣这只是一个快速修复。
于 2011-04-19T11:12:29.517 回答
0
我确实将两个数组合并为一个,但这使得 tableviewcell 加载速度变慢了很多,因为单元格同时包含标题和描述
于 2010-05-05T10:58:30.590 回答