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

我有一个 NSMutableDictionary。

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

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

【问题讨论】:

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

标签: iphone objective-c nsdictionary nsmutabledictionary


【解决方案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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多