1

我的获取请求是获取所有组对象,而不是我想要的。

我希望它只获取当前用户所属的组,但我的谓词似乎不起作用。有什么想法吗?

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"AGroup" inManagedObjectContext:_managedObjectContext]];
    AUser *u = [AUser currentUser];  //gets app's current user
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"ANY users = %@", u]];

我也尝试了以下方法,但没有奏效:

[NSPredicate predicateWithFormat:@"(users CONTAINS %@)", u];
[NSPredicate predicateWithFormat:@"SUBQUERY(users, $user, $user = %@).@count = [users count]", u];

类结构

AGroup
- users (Type: AUser *)

AUser
- name (Type: NSString *)
4

1 回答 1

1

我不明白为什么

[NSPredicate predicateWithFormat:@"ANY users = %@", u]

不适合你,但更简单的解决方案就是使用反比关系

AUser *u = [AUser currentUser];
NSSet *theGroups = u.groups;

或者,如果您需要它作为数组:

NSArray *theGroups = [u.groups allObjects];
于 2013-03-09T22:22:18.497 回答