如何将 NSDictionary 添加为 Objective-C 中的值?
How to add NSDictionary as a value in Objective-C?
我有一个 属性:
@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 声明为 @属性 将在您的 class 中创建一个实例变量,但该变量将为 nil。
您需要在调用填充代码之前的某处初始化 mainDict,可能是在您的 -init、-viewDidLoad 中或适合您的应用架构的地方。
mainDict 初始化应如下所示:
mainDict = [[NSMutableDictionary alloc] init];
我有一个 属性:
@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 声明为 @属性 将在您的 class 中创建一个实例变量,但该变量将为 nil。
您需要在调用填充代码之前的某处初始化 mainDict,可能是在您的 -init、-viewDidLoad 中或适合您的应用架构的地方。
mainDict 初始化应如下所示:
mainDict = [[NSMutableDictionary alloc] init];