[英]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.