繁体   English   中英

NSDictionary中的NSDictionary的设置值

[英]Set value of a NSDictionary in a NSDictionary

我有一本字典作为另一本字典的值:

10 = {
        createdate = "2012-03-20 15:04:09.125177-05";
     }

我想为内部字典设置一个值而不必将其拔出,但是

[NSDicionary setObject:forKey:]

仅深入一处。 我可以添加另一个密钥吗? 我试过了

[[NSDicionary setObject:forKey:]forKey:]

但是xCode不喜欢那样。

有任何想法吗?

假设您的字典是可变的,则可以使用:

[[yourDictionary objectForKey:@"10"] setObject:newDate forKey:@"createdate"]];

要查看其工作原理,请注意它等效于此:

NSMutableDictionary *innerDict = [someDictionary objectForKey:@"10"];
[innerDict setObject:newDate forKey:@"createdate"]];

如果您的字典不可变,则需要做更多的工作。 首先,如果外部字典不可变:

yourDictionary = [yourDictionary mutableCopy];

如果内部字典不可变:

NSMutableDictionary *newInnerDict = [[yourDictionary objectForKey:@"10"] mutableCopy];
[newInnerDict setObject:newDate forKey:@"createdate"]];
[yourDictionary setObject:newInnerDict forKey:@"10"];

由于您不修改外部字典,仅修改内部字典,因此只需要一次调用setObject:forKey: 另一个调用应该是objectForKey: ::

[[myDictionary objectForKey:outerKey] setObject:replacementValue forKey:innerKey];
NSDictionary *innerDictionary = [NSDictionary dictionaryWithObject:someDate forKey:@"createdate"];
[someOtherDictionary setObject:innerDictionary forKey:@"10"];

或更短:

[someDictionary setObject:[NSDictionary dictionaryWithObject:someDate forKey:@"createdate"] forKey:@"10"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM