有没有办法在 valueForKeyPath 语句中指定特定的对象索引?
在调用 NSDictionary valueForKeyPath 时,如果路径的一层是数组,您可以指定数组中的特定元素吗?
例如:
[myDict valueForKeypath:@"customer.contactInfo.phoneNumbers[4].countryCode];
其中 .phoneNumbers 是一个 NSArray。或者我是否必须这样做:
NSArray *numbers=[myDict valueForKeypath:@"customer.contactInfo.phoneNumbers];
NSString *countryCode=[[numbers objectAtIndex:4] objectForKey:@"countryCode"];
如果这可以在一个声明中完成,那就真的很好而且更干净。
In calling NSDictionary valueForKeyPath if one level of the path is an array can you specify a specific element in the array?
For example:
[myDict valueForKeypath:@"customer.contactInfo.phoneNumbers[4].countryCode];
where .phoneNumbers is an NSArray. Or do I have to:
NSArray *numbers=[myDict valueForKeypath:@"customer.contactInfo.phoneNumbers];
NSString *countryCode=[[numbers objectAtIndex:4] objectForKey:@"countryCode"];
It would be really nice and much cleaner if this could be done in one statement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以这样做:
You could do this:
这是我为 NSObject 编写的一个类别,它可以处理数组索引,以便您可以像这样访问嵌套对象:“customer.contactInfo.phoneNumbers[4].countryCode”
像这样使用它
没有错误检查,因此它很容易损坏,但您明白了。我将此答案交叉发布到类似的(链接的)问题。
Here's a category I wrote for NSObject that can handle array indexes so you can access your nested object like this: "customer.contactInfo.phoneNumbers[4].countryCode"
Use it like so
There's no error checking, so it's prone to breaking but you get the idea. I cross posted this answer to a similar (linked) question.