iOS - 3个字符串的关键索引

时间:2013-03-20 13:21:54

标签: ios nsstring nsdictionary

我将项目存储在一个大的NSMutableArray中。 3个字符串定义此数组中的唯一项。我想要一个NSMutableDictionary,它将3个字符串键映射到数组中的一个条目。

在我的代码中,item中的前3个对象是定义唯一项的3个字符串。如何最有效地创建用于执行查找的密钥?我猜stringWithFormat并不是最好的主意。我正在尝试加速发生的大量查找。

- (void)addItem:(NSArray*)item {
    // create entry from item
    [mEntries addObject:entry]; 
    NSString *key = [NSString stringWithFormat:@"%@%@%@", [item objectAtIndex:0],
                               [item objectAtIndex:1],[item objectAtIndex:2]];
    [mEntryMap setObject:entry forKey:key];
}

- (Entry*)getItem:(NSArray*)strs {
    NSString *key = [NSString stringWithFormat:@"%@%@%@", [strs objectAtIndex:0],
                               [strs objectAtIndex:1],[strs objectAtIndex:2]];
    return [mEntryMap objectForKey:key];
}

1 个答案:

答案 0 :(得分:0)

直接从数组创建字符串,无需使用long方法

- (void)addItem:(NSArray*)item {
    // create entry from item
    [mEntries addObject:entry]; 
    NSString *key=[item componentsJoinedByString:@""];
    [mEntryMap setObject:entry forKey:key];
}

- (Entry*)getItem:(NSArray*)strs {
    NSString *key=[strs componentsJoinedByString:@""];
    return [mEntryMap objectForKey:key];
}