У меня есть объект со следующей планировкой:NSPredicate подзапрос по всем значениям словаря
@interface Contact : NSObject
@property (nonatomic, strong) NSString *username;
@property (nonatomic, strong) NSDictionary *emails;
@end
Как вы можете видеть, что письма моделируются словарем с ключами, которые являются тегом электронной почты и значения для самих писем (т. е. @ {@ "home": @ me @ home.com "})
Я пытаюсь отфильтровать группу из них путем частичного совпадения либо по имени пользователя, либо по электронной почте из потенциально многих электронных писем, но подзапрос электронной почты не возвращает никаких совпадений, даже если я нахожу точный адрес электронной почты. Я не уверен, где я использую запрос.
Мой запрос выглядит следующим образом:
NSPredicate *userName = [NSPredicate predicateWithFormat:@"self.username contains[cd] %@", self.searchFieldText];
NSPredicate *email = [NSPredicate predicateWithFormat:@"SUBQUERY(self.emails.allValues, $x, $x contains[cd] %@)[email protected] > 0", self.searchFieldText];
self.activeFilter = [NSCompoundPredicate orPredicateWithSubpredicates:@[userName,email]];
Любые мысли?