2012-04-17 59 views
3

你好,我有這樣的核心數據:使用NSPredicate從關係檢索的核心數據信息

enter image description here

那麼我這樣做:

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

現在我想用NSPredicate只取具有isView = NO和taskDate < =今天的Tasks關係的任務的MyDate,並且每個MyDate的所有Task的計數> 0 ...有一種方法?

回答

2

我沒有足夠的積分發表評論,所以跳下Nikita的答案,所有你需要做的是以下幾點:

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]; 
+0

而將這個謂詞選擇Taskes **這兩個**都是isView = NO和日期<今天?或者它只會返回日期,它具有任務,只滿足這些條件之一?我剛剛從未使用任何,我很感興趣 – 2012-04-18 06:57:57

0

使用[NSPredicate predicateWithFormat:@"[email protected]>0 AND (ANY (taskes.isView = NO AND taskes.taskDate<%@)",today]; " 不知道,但也許它會工作