如何在Objective-C中添加NSDictionary作为值



我有一个属性:

@property (nonatomic, strong) NSMutableDictionary<NSString *, NSMutableDictionary<NSString *, NSString *>*>*mainDict;

所以它是一本以另一本字典为价值的字典。现在,当我想填充我的字典时,我会:

NSData *data = [json_string dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
for (NSString *key in [[json objectForKey:@"countries"] allKeys]) {
NSDictionary *innerDictionary = [json objectForKey:@"countries"][key];
[mainDict setObject:innerDictionary forKey:key];
}

当我调试时,我看到我的innerDictionary是正确的,并且有它的值,但不知何故,我的mainDict没有被填充。

你能告诉我我做错了什么吗?

将mainDict声明为@property将在类中创建一个实例变量,但该变量将为nil。

在调用填充代码之前,您需要在某个地方初始化mainDict,可能是在-init、-viewDidLoad中,或者适合应用程序体系结构的某个地方。

mainDict初始化应该看起来像:

mainDict = [[NSMutableDictionary alloc] init];

最新更新