我有一个日历数量,每个日历都有许多事件。我想查找日期> 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