使用 StackMob 作为后端。我有一个 Event
实体,它具有称为用户 users
的关系(类型 NSSet
)。现在我想获取某个用户的 username
是 @"someuser"
的所有事件。我的代码是这样的:
[self.client getLoggedInUserOnSuccess:^(NSDictionary *result) {
NSString *currentlyLoggedInUser = [result valueForKey:@"username"];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *eventEntity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedOjbectContext];
[request setEntity:eventEntity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username = %@", currentlyLoggedInUser];
NSLog(@"predicate: %@", predicate);
[request setPredicate:predicate];
NSLog(@"request: %@", request);
events = [NSArray new];
events = [self.managedOjbectContext executeFetchRequest:request error:nil];
/* this is working...
for (Event *e in events) {
NSLog(@"%@",[e.users filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"username == %@", currentlyLoggedInUser]]);
}
*/
NSLog(@"events: %@", events);
} onFailure:^(NSError *error) {
}];
最佳答案
如果我正确理解你的问题,你必须使用以下谓词:
NSString *userName = @"some user";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username = %@", userName];
它会查找具有给定用户名的任何用户的所有事件。
关于ios - 如何使用 predicateWithFormat 查询 NSString 包含在 NSSet 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026586/