0

UiSearchBar在我的 中实现了一个TableView,我也有两个NSArray,一个用于标题,一个用于描述。当我搜索标题数组时,它会返回正确的搜索,但是当我单击搜索附带的行时,如果单击第一行,则会得到“第 0 行”。我的问题是如何在两个数组之间建立连接,以便当搜索根据用户搜索重新排列标题时,描述数组对应于标题所在的同一行。

4

3 回答 3

0

简单地不要使用两个NSArrays,而只使用一个自定义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 回答