サブクエリの述語構文を確認する必要があります。通常の ANY キーワードは使用できません。これは、同時に 2 つではなく 1 つの列のみを照合できるためです。
NSString *keyValue = @"title";
NSString *valueValue = @"home";
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Page" inManagedObjectContext:_context]];
[request setPredicate:[NSPredicate predicateWithFormat:@"(SUBQUERY(attributes, $a, $a.key == %@ && $a.value == %@).@count != 0)", keyValue, valueValue]];
より単純な述語ANY attributes.key = "title" AND ANY attributes.value = "home"
は、key='addr'/value='home' と key='title'/value='pete' などの 2 つの dict を持つページも返すため、機能しません。