NSArray从键值中获取整个对象[重复]
Posted
技术标签:
【中文标题】NSArray从键值中获取整个对象[重复]【英文标题】:NSArray get entire object from key value [duplicate] 【发布时间】:2015-03-22 15:27:47 【问题描述】:一定是瞎了眼,看不出与上述问题的区别。
我有一个像
这样的 NSArray[
"NAME": "MyProduct1",
"UUID": 4
,
"NAME": "MyProduct2",
"UUID": 10
,
"NAME": "MyProduct3",
"UUID": 18
,
...
]
现在有了一个特定的 ID 号,我想获得一本只包含相关产品的字典。所以 ID=18 就是:
"NAME": "MyProduct3",
"UUID": 18
考虑到每个 UUID 在数组中都是唯一的,我正在尝试找到一个优雅的解决方案。
【问题讨论】:
这根本不是同一个问题。这是关于从另一个具有可能重复值的 NSArray 中获取 NSArray,这里我们说的是从单个(并且是唯一的,参见 UUID)值中获取 NSDictionary。 这里欢迎任何形式的争论。 权力越大,责任越大。下次请仔细阅读。 【参考方案1】:您可以使用NSPredicate
NSArray *myArray = @[
@
@"NAME": @"MyProduct1",
@"UUID": @4
,
@
@"NAME": @"MyProduct2",
@"UUID": @10
,
@
@"NAME": @"MyProduct3",
@"UUID": @18
];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"UUID == 18"];
NSArray *filteredArray = [myArray filteredArrayUsingPredicate:predicate];
id firstFoundObject = filteredArray.firstObject;
NSLog(@"Result: %@", firstFoundObject);
结果:
2015-03-22 17:15:06.468 Untitled[23770:2311273] Result:
NAME = MyProduct3;
UUID = 18;
如此处所述: How to search an NSSet or NSArray for an object which has an specific value for an specific property?
【讨论】:
谢谢,但这不起作用,可能是因为每个对象中有多个属性。 @kursus 它确实有效 - 请参阅我更新的答案。除非结果不是你想要的? 确实有效 我很抱歉,谢谢! 如果您使用的是firstObject
,则无需检查count
。
@AaronBrager 你是对的。更新了答案。以上是关于NSArray从键值中获取整个对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章