带有nsmutablestring forkey的nsmutabledictionnary

时间:2010-08-17 17:47:43

标签: iphone objective-c

我有一个nsmutabledictionnary,当我使用setObject:forKey:使用nsstring键时,它会在我尝试使用objectForKey时起作用,但是如果我在setObject:forKey:方法的key参数中放入一个nsmutablestring,那么当我使用它时它不起作用调用objectForKey,它返回字典中的最后一个对象......

2 个答案:

答案 0 :(得分:2)

您应该知道NSDictionary(和NSMutableDictionary)在添加密钥之前复制密钥 - 因此,如果您使用NSMutableString作为密钥,然后修改相同的字符串,则数据库中的密钥仍将具有旧值。这样做是有原因的 - NSDictionary中的键应该始终是静态的,因为它实际上是用于检索相关值的哈希值。

答案 1 :(得分:0)

如果普通字符串有效,但可变字符串不起作用,那么为什么不添加另一行代码并将其转换为普通字符串呢?

NSString *keyValue = mutableStringVariable;