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は重複キーを許可しないため、上記のコードは同じキーで値をオーバーライドします。これどうやってするの?[array addObject:newPerson]のように、NSMutableArrayで上記のコードを実行できます。しかし、NSDictionaryとは対照的に、(Key、value)のフェッチには時間がかかりますか?私のデータは約40万アイテムですが、これを効率的に行う方法について何かアイデアはありますか?私はそれを一度ロードして、それに対して多くのフェッチを行う必要があります-coreDataはありません、私はそれを試しました、それは遅いです。

4

1 に答える 1

3

キーとしてを使用する場合は、同じキーに複数のオブジェクトをNSMutableArray追加できます。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 に答える