我有一个核心数据结构如下:
Business <-------->> Employee <-------->> Address
每个企业有多个员工,每个员工可以有多个地址。
从业务对象中,我希望能够获得指定特定条件的一个NSArray
或NSSet
所有对象。Address
例如,所有街道名称都必须是唯一的。
我知道我可以覆盖,isEqual:
但我猜这会产生意想不到的结果。否则,我一直在考虑使用valueForKeyPath:@"@distinctUnionOfObjects"
,但我认为我不能通过条件。
这是我到目前为止的一些代码:
NSMutableArray *addressArray = [NSMutableArray array];
NSArray *employees = [Employee sortedArray];
//loop through employees
for (Employee *employee in employees) {
for (Address *address in employee.addresses) {
[addressArray addObject:address];
}
}
//filter out duplicates
addressArray = [addressArray valueForKeyPath:@"@distinctUnionOfObjects.city"];
这段代码给了我一个独特城市的列表,但是,我想要一个包含Address
具有唯一city
值(或其他条件)的对象的集合。