核心数据搜索列出某些变量相等的位置

时间:2013-12-01 08:21:35

标签: core-data nsfetchrequest

我使用Core Data或SQL已经有一段时间了,所以我甚至不记得如何做到这一点,甚至不知道如何搜索它。

我有一个对象列表

  name | id   |
_______|______|
John   |  4   |
Betty  |  7   |
Betty  |  2   |
Betty  |  4   |
Edward |  2   |
Edward |  4   | 
John   |  4   |

我想找到包含Betty和Edward的id。 这应该返回2 Not 4

有什么想法吗?

非常感谢! 亚历

1 个答案:

答案 0 :(得分:0)

您将遇到属性名称id的问题,因此我使用了uid。另外,请注意名称

NSArray *bettyIDs = [[allPersons filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat:@"name = %@", @"Betty"]  valueForKeyPath:@"uid"];
NSArray *edIDs    = [[allPersons filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat:@"name = %@", @"Edward"] valueForKeyPath:@"uid"];

NSArray *commonIDs = [bettyIDs filteredArrayUsingPredicate:
  [NSPredicate predicateWithFormat:@"self in %@", edIDs]];
// commonIDs --> @[@2, @4];