如果我有一个大的 NSDirectory 通常来自解析的 JSON 对象,我可以使用如下代码访问该对象:
[[[[[obj objectForKey:@"root"] objectForKey:@"key1"] objectAtIndex:idx] objectForKey:@"key2"] objectAtIndex:idz];
队伍可能比这个长很多。
我可以以任何方式优化这段代码吗?至少让它更容易阅读?
如果对象不对应,此行也会生成运行时错误,避免这种情况的最有效方法是什么?
最佳答案
如果您使用-objectForKey:
提供您可以使用的一切 -valueForKeyPath:
,如
[obj valueForKeyPath:@"key1.key2.key3.key4"]
但是,当您需要使用-objectAtIndex:
时,这不起作用。 。我认为没有什么好的解决方案适合你。 -valueForKeyPath:
也无法解决运行时错误的问题。
如果您确实想要一种简单的方法来执行此操作,您可以编写自己的 -valueForKeyPath:
版本(称之为其他名称)提供了指定 -objectAtIndex:
的语法。而不是 key ,并且执行适当的动态检查以确保对象实际响应相关方法。
关于objective-c - 如何使用objectForKey和objectAtIndex高效访问Obj-C中的大对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11324922/