2011-04-14 39 views
0

我有两个NSMutableArrays;名称和名称ID 在我的tableview中,只有名称将显示为textLabel。附加两个NSMutableArrays并使用UISearchBar

我想使用UISearchBar搜索名称。例如;

name -- nameID 
    Stack   123 
    Over   -1 

nameID是需要使用的主要事情。

那么,是否有可能连接两个NSMutableArrays,以便每当用户选择堆栈时,它显示123?

感谢

回答

0

如何使用一个NSMutableDictionary与名称为键和IDS的价值观?

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

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

请记住,allKeysallValues返回数组的顺序不能保证。

因此,作为第三种选择,您可以维护一个字典数组,其中每个字典都有两个键名称和ID,其值是名称和ID。然后你将每个名字和id配对成一个单独的对象(一本字典),你可以确定你的名字/ id对数组的顺序。

0

一种方法可能是这样的,而不是分开维护数据,因为他们承担的关系,你可以封装他们在一个类,说Record其中有两个字段nameid。现在保存这个对象的数组(比如说recordList)。

当我们可以搜索任何Record给定searchText如下。

-(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开头的record的nameId(因为你看到我已经使用了searchRange.location == 0`)。

将来,假设您需要为Record记录更多细节,而不是简单。

0

我发现的一个简单的方法是加入字符串(名称#nameID),然后单独返回nameID。