使用NSPredicate从关系中检索核心数据中的信息

时间:2012-04-17 15:11:16

标签: iphone ios core-data nspredicate

你好,我有这个核心数据:

enter image description here

然后我这样做:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription 
                           entityForName:@"MyDate"  inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

现在我想使用NSPredicate只使用具有isView = NO和taskDate< = today的taskes关系的任务的MyDate,并且每个MyDate的所有任务的计数是> 0 ...有办法吗?

2 个答案:

答案 0 :(得分:2)

我没有足够的评论意见,所以跳出尼基塔的答案,你需要做的就是以下几点:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY taskes.isView = NO AND ANY taskes.taskDate <= %@", todayDate];

你可以获得今天约会的一种方式(可能有更好的方法):

NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSString *dateString = [dateFormat stringFromDate:date];
NSDate *todayDate = [dateFormat dateFromString:dateString];

答案 1 :(得分:0)

使用[NSPredicate predicateWithFormat:@"taskes.@count>0 AND (ANY (taskes.isView = NO AND taskes.taskDate<%@)",today]; " 不确定,但也许它会起作用