1

我正在尝试设置在我的 NSMutableDictionary 中很深的对象,我的意思是在我可以访问它们之前有几个级别的键。

显然我做不到

setObject:x forKey forKey forKey forKey...

我怎样才能做到这一点?

4

2 回答 2

6

你会做类似的事情

mutableDictionary[key1][key2][key3] = value;

但是这种多嵌套的字典很可能暗示您的设计存在更大的问题。

于 2013-09-01T22:19:38.507 回答
6

使用键路径编码。就像是:

[myDictionary setValue:newValue forKeyPath:@"foo.bar.baz"];

它查找foomyDictionary然后获取它得到的任何东西并查找bar它,然后获取它在那个时间得到的任何东西并调用setValue:forKey:它来为 分配一个新值baz。您还可以使用键路径来查找值:

id currentValue = [myDictionary valueForKeyPath:@"foo.bar.baz"];
于 2013-09-01T22:36:05.453 回答