我有两个NSMutableArrays; name和nameID 在我的tableview中,只有名称将显示为textLabel。
我想使用UISearchBar搜索名称。例如;
name -- nameID
Stack 123
Over -1
nameID是需要使用的主要内容。
那么,是否可以链接两个NSMutableArrays,以便每当用户选择Stack时,它会显示123?
由于
答案 0 :(得分:0)
如何使用一个NSMutableDictionary
将名称作为键,将ID作为值使用?
然后,在您的表中,可以使用[myNameDict allKeys]
找到数据数组。
或者,您可以将id作为键和名称的值,在这种情况下,通过调用[myNameDict allValues]
可以将所有名称作为数组访问。
请记住,allKeys
和allValues
会返回无法保证顺序的数组。
因此,作为第三种选择,您可以维护一个字典数组,其中每个字典都有两个键,name和id,其值是name和id。然后,您将每个名称和id配对到一个对象(字典)中,您可以确定您的名称/ ID对数组的顺序。
答案 1 :(得分:0)
一种方法可能是这样的,而不是单独维护数据,因为它们具有关系,您可以将它们封装在一个类Record
中,其中包含两个字段name
和id
。现在保持这个对象的数组(比如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`)。
将来假设您需要为记录保存更多细节,而不是更容易。
答案 2 :(得分:0)
我找到的一个简单方法是加入字符串(名称为#nameID),然后分开以获取nameID。