-1

我已经构建了一些代码来制作辅助字典来存储主字典的键。所以我可以得到一个值的键。为了使它们唯一,如果有两个或多个相同的值,我将字典对象的 ID 存储为键,并将它们的键存储为对象。

但是当两个对象具有相同的值时,它们也具有相同的 ID。因此我无法检索两个不同的密钥:

NSDictionary *myDict = @{@"key1": @"obj1", @"key2": @"obj1", @"key3" : @"x"};
NSLog(@"%p",[myDict objectForKey:@"key1"]);
NSLog(@"%p",[myDict objectForKey:@"key2"]);

输出:

2013-03-06 02:03:28.740 DictTest[2855:303] 0x1000028e8
2013-03-06 02:03:28.741 DictTest[2855:303] 0x1000028e8

我怎样才能防止这种情况?

4

1 回答 1

0

回答我自己的问题:这不是字典的问题,而是字符串文字的问题。@"obj1" 总是给出相同的 ID。为了解决这个问题,我必须通过以下方式设置字典:

NSDictionary *myDict = @{@"key1": [NSMutableString stringWithFormat:@"%@",@"obj1"], @"key2": [NSMutableString stringWithFormat:@"%@",@"obj1"], @"key3" : @"x"};

请注意“NSMutableString”!您将需要可变对象。

于 2013-03-06T09:53:06.453 回答