如何更新 NSMutableDictionary?

Posted

技术标签:

【中文标题】如何更新 NSMutableDictionary?【英文标题】:How to update NSMutableDictionary? 【发布时间】:2010-02-09 07:16:04 【问题描述】:

我有一个 NSMutableDictionary。

NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

我必须更新该字典中的一个元素。我该怎么做?

【问题讨论】:

取决于你的意思更新... 我必须删除一个对象并为一个键插入另一个值。这个 NSMutableDictionary 是用户应用程序设置的 plist。用户会经常更改它。 【参考方案1】:

请参考这里的API

首先使用检索对象

[dict objectForKey:@"key"];

稍后,您可以使用以下方法重新设置它们:

- (void)setObject:(id)anObject forKey:(id)aKey
- (void)setValue:(id)value forKey:(NSString *)key

【讨论】:

谢谢。我试过这样。它起作用了.. [plistDict removeObjectForKey:@"name"] ; [plistDict setObject:@"my name" forKey:@"name"]; 在设置新值之前,您无需删除键的对象。 我只需要 [plistDict setObject:@"my name" forKey:@"name"]; ?行。我会试试这个。谢谢。【参考方案2】:

字典只允许您为每个键设置一个对象,因此如果您使用“为键设置对象”,它将更新当前对象

【讨论】:

【参考方案3】:

NSMutableDictionary 的方法 addEntriesFromDictionary.

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html

如果两个字典都包含相同的键,则接收字典的该键的先前值对象会被发送一条释放消息,并且新的值对象会取而代之。

【讨论】:

以上是关于如何更新 NSMutableDictionary?的主要内容,如果未能解决你的问题,请参考以下文章

无法更新 NSMutableDictionary?

如何更改 NSMutableDictionary int 值

如何阻止指针更新前一个循环中的数据?

如何将 NSArray 添加为 NSMutableDictionary 的 NSMutableDictionary 键?

如何获得 NSDictionary/NSMutableDictionary 的原始顺序?

NSMutableDictionary里面的NSMutableArray如何过滤