我有一个带有 2 个属性的 NSObject
@interface Entity : NSObject {
NSNumber *nid;
NSString *title;
}
我有 2 个数组,其中包含实体的对象,我想将 nid 上的这两个数组与谓词进行比较
array1: ({nid=1,title="test"},{nid=2,title="test2"})
array2: ({nid=2,title="test2"},{nid=3,title="test3"})
这两个数组都有一个值为 2 的 nid,所以我的输出应该是
array3: ({nid=2,title="test2"})
所以我可以生成一个仅包含匹配 nid 的数组
以下代码似乎对我有用(它显然泄漏了 MyEntity 对象,但这不是示例目标):
NSArray* array1 = [NSArray arrayWithObjects:[[MyEntity alloc] initWithID:[NSNumber numberWithInt:1] title:@"1"],
[[MyEntity alloc] initWithID:[NSNumber numberWithInt:2] title:@"2"], nil];
NSArray* array2 = [NSArray arrayWithObjects:[[MyEntity alloc] initWithID:[NSNumber numberWithInt:2] title:@"2"],
[[MyEntity alloc] initWithID:[NSNumber numberWithInt:3] title:@"3"], nil];
NSArray* idsArray = [array1 valueForKey:@"nid"];
NSArray* filteredArray = [array2 filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"nid IN %@", idsArray]];
filteredArray
包含其 id 出现在两个数组中的实体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)