Iphone 附加两个NSMutableArray并与UISearchBar一起使用

Iphone 附加两个NSMutableArray并与UISearchBar一起使用,iphone,objective-c,ios,nsmutablearray,uisearchbar,Iphone,Objective C,Ios,Nsmutablearray,Uisearchbar,我有两个NSmutableArray;名称和名称ID 在我的tableview中,只有名称将显示为textLabel 我想使用UISearchBar搜索姓名。比如, name -- nameID Stack 123 Over -1 nameID是需要使用的主要内容 那么,是否可以链接两个NSMutableArray,以便用户在选择堆栈时显示123 谢谢使用一个名为键、ID为值的NSMutableDictionary怎么样 然后,

我有两个NSmutableArray;名称和名称ID 在我的tableview中,只有名称将显示为textLabel

我想使用UISearchBar搜索姓名。比如,

   name   --    nameID
    Stack         123
    Over          -1
nameID是需要使用的主要内容

那么,是否可以链接两个NSMutableArray,以便用户在选择堆栈时显示123

谢谢

使用一个名为键、ID为值的NSMutableDictionary怎么样

然后,在您的表中,可以使用[myNameDict allKeys]找到数据数组

或者,您可以将id设置为键,将名称设置为值,在这种情况下,可以通过调用[myNameDict allValues]以数组的形式访问所有名称

请记住,allKeys和allValues返回的数组的顺序无法保证


因此,作为第三种选择,您可以维护一个字典数组,其中每个字典都有两个键,name和id,它们的值是name和id。然后您将每个name和id配对到一个对象dictionary中,您可以确定name/id配对数组的顺序。

一种方法可能是这样的,不需要单独维护数据,因为它们具有关系,您可以将它们封装在一个类中,比如说记录,它有两个字段name和id。现在保存这个objectsay recordList的数组

当我们可以用给定的搜索文本搜索任何记录时,如下所示

-(Record *) searchRecordWithName:(NSString *)searchText
{
Record *tempRecord;
  for( tempRecord in recordList)
  {
    NSRange searchRange = [tempRecord.name rangeOfString:searchText options:NSCaseInsensitiveSearch];
     if( searchRange.length>0 && searchRange.location==0)
      {
         break;
      }
  }
return tempRecord;
}
请根据您的需要更正以上代码。在这里,我考虑为名称以searchtext开头的记录查找nameId,正如您看到的,我使用了searchRange.location==0`


在将来,假设您需要保存更多的详细信息以供记录,这比记录更容易。

我发现的一种简单方法是,将字符串name nameID连接起来,然后分开以获取nameID