实施例: NamesArray - {Peter,Arnold,John,Samuel}
IDsArray - {1,2,3,4}
从DB中获取这些值后...我正在对NamesArray进行排序......它会像这样......
NamesArray Value - {Arnold,John,Peter,Samuel}
如何根据NamesArray更改IDsArray?
实施例: 我在SearchBar中搜索'P'文本...它将在TableView中显示'Peter'...
如何根据搜索文本从idarray获取ID?
提前致谢
答案 0 :(得分:1)
您可以使用带有键名称和ID的字典数组。您可以使用NSPredicate进行搜索,使用NSSortDescriptor进行排序
yourArray: (
{
id = 1;
name = Peter;
},
{
id = 2;
name = Arnold;
},
{
id = 3;
name = John;
},
{
id = 4;
name = Samuel;
});
排序
nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
nameDescriptors = [NSArray arrayWithObject:nameDescriptor];
sortedArray = [yourArray sortedArrayUsingDescriptors:nameDescriptors];
过滤
NSString *strToFilter = @"P";
NSArray *filteredNames = [yourArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(name BEGINSWITH[c] %@)", strToFilter]];
答案 1 :(得分:1)
对于这种情况,可以完成简单的逻辑。
NamesArray - {Peter,Arnold,John,Samuel} IDsArray - {1,2,3,4}
将搜索到的名称放在单独的数组中,在搜索时不会影响NamesArray。
searchingNamesArray - {Peter}
之后从数组中获取搜索对象的索引
for (NSString *value in searchedNamesArray)
{
NSInteger index = [NamesArray indexOfObject:value];
// you will get the index of the object from which you can use from getting the id from IDsArray
NSLog(@"ID - %@", [IDsArray objectAtIndex:index]);
}