Ios 在未筛选的NSMutableArray中查找筛选的NSMutableArray(来自searchResultsTableView)中所选行的等效索引
如果我的问题不清楚,请提前道歉,因为我对iOS编程(以及一般编程)还不熟悉 现在,我有一个Ios 在未筛选的NSMutableArray中查找筛选的NSMutableArray(来自searchResultsTableView)中所选行的等效索引,ios,nsmutablearray,Ios,Nsmutablearray,如果我的问题不清楚,请提前道歉,因为我对iOS编程(以及一般编程)还不熟悉 现在,我有一个UITableView,它显示一个按字母顺序排列的NSMutableArray用户朋友的名字,类似于: friends: { @"Andy",@"Anand",@"Bob",@"Cat" }; friendsAges: {@"25",@"23",@"30",@"22"}; 我还有另一个NSMutableArray,它保存用户朋友的匹配年龄,这是用户从未看到过的,但在用户选择朋友的名字后会传递给前一个视图
UITableView
,它显示一个按字母顺序排列的NSMutableArray
用户朋友的名字,类似于:
friends: { @"Andy",@"Anand",@"Bob",@"Cat" };
friendsAges: {@"25",@"23",@"30",@"22"};
我还有另一个NSMutableArray
,它保存用户朋友的匹配年龄,这是用户从未看到过的,但在用户选择朋友的名字后会传递给前一个视图控制器。此ages数组类似于:
friends: { @"Andy",@"Anand",@"Bob",@"Cat" };
friendsAges: {@"25",@"23",@"30",@"22"};
我的问题是,如果我在朋友姓名的UITableview
中添加了searchBar
,如果用户从过滤数组searchResultsTableView
中选择了一个姓名,我如何确保将相应的年龄对象发送回上一个视图控制器
例如,如果没有搜索栏,选择“Bob”也会将“30”发送到上一个控制器。但是如果用户输入“bo”,并且在过滤的搜索结果表视图中只显示Bob,那么年龄“25”将被发送到前一个控制器b/c,这是第一个索引
这是我的错误代码:
if (tableView == self.searchDisplayController.searchResultsTableView) {
NSString *theFriend = [_filteredFriendArray objectAtIndex:indexPath.row];
// not sure what I should use instead for the _filteredFriendArray below
NSString *theFriendAge = [_filteredFriendArray objectAtIndex:indexPath.row];
[self.delegate friendPickerViewController:self
didSelectFriend:theFriend
didSelectFriendAge:theFriendAge];
} else { //if not using search bar and seeing filtered search results
NSString *theFriend = [friends objectAtIndex:indexPath.row];
NSString *theFriendAge = [friendsAge objectAtIndex:indexPath.row];
[self.delegate friendPickerViewController:self
didSelectFriend:theFriend
didSelectFriendAge:theFriendAge];
}
我觉得使用NSDictionary可能比尝试将过滤搜索视图的索引匹配回主数组更容易,但我不确定如何最好地做到这一点
任何帮助都将不胜感激 你说得对,使用字典更容易。每个人都可以用{@“姓名”:“斯蒂芬·霍金”,“年龄”:70}这样的词典来表示。使用[personDict objectForKey:@“name”]填充您的friends表视图,并在选择时获取[person objectForKey:@“age”]的值,并将其传递回上一个视图控制器 您要使用的不是词典,而是一组词典。你不知道怎么做什么?做一本字典?制作一系列字典?在表视图中使用字典数组?如果不清楚,请发表评论,我会尽力提供帮助。我会尝试一下,看看它会把我带到哪里。非常感谢。