如何匹配id的名称iphone?

时间:2014-03-12 09:28:08

标签: iphone objective-c

  1. 我从DB获取名称和ID ...并将这些值存储在Array中......类似存储在NamesArray中的名称和存储在IDsArray中的ID ......
  2. 实施例: NamesArray - {Peter,Arnold,John,Samuel}

    IDsArray - {1,2,3,4}

    从DB中获取这些值后...我正在对NamesArray进行排序......它会像这样......

    NamesArray Value - {Arnold,John,Peter,Samuel}

    如何根据NamesArray更改IDsArray?

    1. 搜索功能需要相同的方案....
    2. 实施例: 我在SearchBar中搜索'P'文本...它将在TableView中显示'Peter'...

      如何根据搜索文本从idarray获取ID?

      提前致谢

2 个答案:

答案 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]);
}