我有一個日曆數量,每個日曆都有許多事件。我想查找日期> x的日曆的所有事件。一對多關係iPhone - NSPredicate核心數據查詢
我的方法簽名看起來像這樣
-(NSArray*)eventsForCalender:(Calendar*)calender StartDate:(NSDate*)start endDate:(NSDate*)endDate;
我添加了一個事件,以這樣的壓延機,但我沒有線索如何去構建一個NSPredicate的查詢。任何幫助表示讚賞
-(Event*)newEventforCalender:(Calendar*)calender
{
Event * newEvent = (Event*)[NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:app.managedObjectContext];
NSMutableSet * eventsArray = [calender mutableSetValueForKey:@"Events"];
[eventsArray addObject:newEvent];
[app.managedObjectContext processPendingChanges];
return newEvent;
}
alt text http://img4.imageshack.us/img4/5218/screenshot20091120at140.png
我改變了這種關係更名爲「事件」,並嘗試了以下
....
NSEntityDescription * entity = [NSEntityDescription entityForName:@"Calendar" inManagedObjectContext:app.managedObjectContext];
[request setEntity:entity];
NSPredicate * predictate = nil;
predictate = [NSPredicate predicateWithFormat:@"(name == %@) AND (Event.start > '%@') AND (Event.finish < '%@')", calender.name, start, endDate, nil];
[request setPredicate:predictate];
...
但是我得到一個異常
終止應用程序由於未捕獲的異常'NSUnknownKeyException',原因:'[valueForUndefinedKey:]:該類不是關鍵事件編碼的關鍵值。'
謝謝,所以你必須使用(名字像'%@')你不能使用對象ID作爲參考? – 2009-11-20 14:41:06