gpt4 book ai didi

ios - 使用 NSPredicate 用另一个 NSArray 过滤一个 NSArray

转载 作者:行者123 更新时间:2023-11-28 20:00:12 26 4
gpt4 key购买 nike

我想使用 NSPredicate 用另一个 NSArray 过滤一个 NSArray

NSArray *a = @[@{@"key1": @"foo", @"key2": @(53), @"key3": @(YES)},
@{@"key1": @"bar", @"key2": @(12), @"key3": @(YES)},
@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];

NSArray *b = @[@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];

NSArray *expectedResult = @[@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];

我试过类似的东西:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"key1 like (key1 IN %@)", b];
NSArray *result = [a filteredArrayUsingPredicate:predicate];

但是,不幸的是,我没有让它发挥作用。

最佳答案

使用这个简单的查询。要从数组 b 中获取 key1 的值,您必须使用简单的 KVC valueForKey: 方法。

NSArray *a = @[@{@"key1": @"foo", @"key2": @(53), @"key3": @(YES)},
@{@"key1": @"bar", @"key2": @(12), @"key3": @(YES)},
@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];

NSArray *b = @[@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];

NSArray *expectedResult = @[@{@"key1": @"foobar", @"key2": @(42), @"key3": @(NO)}];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"key1 IN %@",[b valueForKey:@"key1"]];
NSArray *result = [a filteredArrayUsingPredicate:predicate];
NSLog(@"%@",result);

关于ios - 使用 NSPredicate 用另一个 NSArray 过滤一个 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24507636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com