【发布时间】:2014-02-21 22:35:26
【问题描述】:
我在互联网上搜索了很多,但找不到我要找的东西。
我有这个模型,它可能有很多用户。所以我有一个名为User 的实体。用户拥有NSSet 的记录。我想从给定用户那里获取记录。我正在尝试这样做,但它仍会返回所有用户的记录。
NSManagedObjectContext *context = _backgroundContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Record"
inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@)",date];
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"User = %@",currentUser];
NSPredicate *predicates = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:predicate,predicate1, nil]];
[fetchRequest setPredicate:predicates];
[fetchRequest setPredicate:predicate];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
我知道这应该不难,但我找不到它是什么,我希望你们中的一些人能提供帮助。提前致谢!
编辑:
正如我所说,我有一个实体 User,它具有:
NSString name,
int age,
NSSet records, ...
Record有自己的属性如:
NSDate date,
NSString name,
NSString event,
...
我想形成一个获取请求以仅从特定用户获取记录。而且我不知道该怎么做,因为我要从每个用户那里获取所有记录。
记录具有多对多关系。我可以获取 currentUser.records 之类的记录,但我无法使用 record.User 获取用户。
【问题讨论】:
-
你能不能简单点我的意思是你使用任何关系?如果是,请提供简短的说明。
-
结帐 MagicalRecord (github.com/magicalpanda/MagicalRecord)。这将使使用 Core Data 变得更加容易......
标签: objective-c ios core-data nspredicate nsfetchrequest