0

我有这样的事情:

@interface Person : NSObject
{
  NSString *fname;
  NSString *lname;
}

NSString *keys = @"a","a","b","b","b"....";
for(NSString *key in keys)
{
    Person *newPerson; //alloc new person
    [myMutableDictionary setValue:newPerson forKey:key];
}

上面的代码将使用相同的键覆盖值,因为 NSDictionary 不允许重复键。我怎样才能做到这一点?我可以通过 NSMutableArray 完成上述代码,如 [array addObject:newPerson]; 但是与 NSDictionary 相比,获取 (Key,value) 需要更长的时间?我的数据大约是 400,000 项,关于如何有效地做到这一点的任何想法?我需要加载一次并对其进行多次提取 - 没有 coreData,我试过了,它很慢。

4

1 回答 1

3

如果您使用 anNSMutableArray作为键,您可以Person为同一个键添加多个对象。

NSString *keys = @"a","a","b","b","b", ...;
for(NSString *key in keys)
{
    Person *newPerson; //alloc new person
    NSMutableArray *people;
    if(!(people = [myMutableDictionary objectForKey:key]))
    {
        people = [NSMutableArray array];
        [myMutableDictionary setValue:people forKey:key];
    }

    [people addObject:newPerson];
}
于 2012-12-04T22:31:18.747 回答