Iphone 附加两个NSMutableArray并与UISearchBar一起使用
我有两个NSmutableArray;名称和名称ID 在我的tableview中,只有名称将显示为textLabel 我想使用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怎么样 然后,
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