gpt4 book ai didi

ios - 2 NSArrays,根据属性值查找交集?

转载 作者:可可西里 更新时间:2023-11-01 05:03:12 25 4
gpt4 key购买 nike

我有 2 个不同类型的自定义对象的 2 个 NSArray。

对象 A 属性:ID:姓名:作者:

对象 B 属性:书号:值(value):终止符:

我需要过滤一个类型为“A”的对象数组,该数组的 ID 值等于第二个包含类型“B”对象的数组中任何对象的 bookID 值。

我尝试通过将数组转换为集合来使用 intersectSet: 方法,但是由于两个对象的类型不同,所以没有任何反应。

最有效的过滤方法是什么?我可以指定进行相交时要查看的属性吗?

最佳答案

这是一个示例代码:

NSDictionary *dictionaryA1 = @{@"ID":@"1", @"Name":@"NameA1", @"Author":@"AuthorA1"};
NSDictionary *dictionaryA2 = @{@"ID":@"2", @"Name":@"NameA2", @"Author":@"AuthorA2"};
NSDictionary *dictionaryA3 = @{@"ID":@"3", @"Name":@"NameA3", @"Author":@"AuthorA3"};

NSDictionary *dictionaryB0 = @{@"bookID":@"0", @"Name":@"NameB0", @"Author":@"AuthorB0"};
NSDictionary *dictionaryB1 = @{@"bookID":@"1", @"Name":@"NameB1", @"Author":@"AuthorB1"};
NSDictionary *dictionaryB3 = @{@"bookID":@"3", @"Name":@"NameB3", @"Author":@"AuthorB3"};

NSArray *arrayA = @[dictionaryA1, dictionaryA2, dictionaryA3];
NSArray *arrayB = @[dictionaryB0, dictionaryB1, dictionaryB3];

NSArray *intersectionWithBookID = [arrayA filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ID IN %@", [arrayB valueForKey:@"bookID"]]];

NSLog(@"intersectionWithBookID: %@", intersectionWithBookID);

输出:

intersectionWithBookID: (
{
Author = AuthorA1;
ID = 1;
Name = NameA1;
},
{
Author = AuthorA3;
ID = 3;
Name = NameA3;
}

关于ios - 2 NSArrays,根据属性值查找交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891060/

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