我有一个字典作为另一个字典的值:
10 = {
createdate = "2012-03-20 15:04:09.125177-05";
}我想给内部字典设置一个值,而不必把它拉出来,但是
[NSDicionary setObject:forKey:]只深入一层。我可以添加另一个密钥吗?我试过了
[[NSDicionary setObject:forKey:]forKey:]但是xCode不喜欢这样。
有什么想法吗?
发布于 2012-03-22 03:56:02
假设你的字典是可变的,你可以使用:
[[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"];发布于 2012-03-22 03:56:16
由于您没有修改外部字典,只修改了内部字典,因此只需要一次对setObject:forKey:的调用;另一个调用应该是objectForKey:
[[myDictionary objectForKey:outerKey] setObject:replacementValue forKey:innerKey];发布于 2012-03-22 03:56:58
NSDictionary *innerDictionary = [NSDictionary dictionaryWithObject:someDate forKey:@"createdate"];
[someOtherDictionary setObject:innerDictionary forKey:@"10"];或者,简称:
[someDictionary setObject:[NSDictionary dictionaryWithObject:someDate forKey:@"createdate"] forKey:@"10"]https://stackoverflow.com/questions/9811855
复制相似问题