从nsdictionary中获取nsdictionary和nsstring值

时间:2012-11-13 16:17:32

标签: objective-c macos cocoa nsdictionary nsmutabledictionary

我有一个返回NSDictionary命名数据的函数。它包含两个对象:一个NSDictionary对象,其中包含密钥currency_data,另一个NSString对象的密钥为time

我想通过:

  • 使用密钥time的字符串值到新的NSString对象
  • NSDictionary个对象,密钥为currency_dataNSMutableDictionary变量。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

取决于您是否使用ARC。使用ARC,您的示例应该可以工作,如果没有ARC,您至少需要保留字符串值。

NSDictionary *dataDict = [foo data];
NSMutableDictionary *currency_dict= [[NSMutableDictionary alloc] initWithDictionary:dataDict[@"currency_data"]];
NSString *time = [data[@"time"] retain];

我认为anoop-vaidy的意思是,如果您需要一个可变字典,请直接在数据调用中创建它并将其传递出去。另请注意:您可以更好地使用您对数据结构的了解。不是使用2个键构建字典,而是使用第一个值(时间字符串)作为键,使用第二个值(货币字典)作为值。您可以非常轻松地访问词典中的值和键

NSArray *value = dict.allValues;
NSArray *keys = dict.allKeys;