很难掌握核心数据的工作方式,我希望我能在这里得到一些非常基本的帮助。
我有两个实体:
Profiles<-->>Events
我已经成功地弄清楚了如何通过谓词获取添加配置文件、在表格视图中查看配置文件以及在表格视图中查看配置文件的事件。
现在,这就是我迷路的地方。假设我想更新 Event 实体中的事件。在更新 Event 实体之前,我是否必须使用谓词来创建 Profiles 对象?或者我可以只更新事件实体并通过关系以某种方式告诉它与哪个配置文件相关联吗?
这是我遇到日志堵塞的地方:
// add new event
//NSLog(@"Adding New Event");
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Events"];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"ANY profile.profilename=[cd] %@",[self profilename]];
[fetchRequest setPredicate:predicate];
self.events = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
//insert event info
NSManagedObject *eventInfo = [NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:self.managedObjectContext];
///////// THIS IS WHERE I NEED HELP
}
// save the context
NSError *error = nil;
if (![managedObjectContext save:&error]){
NSLog(@"Error! %@",error);
}
我即将准备好创建一个平面文件并使用它!快把我逼疯了!
编辑 - 更改代码如下* ** * ** * ** * ** * ** * ** * ** * *
// add new event
//NSLog(@"Adding New Event");
Events *newEvent = (Events *)[NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:managedObjectContext];
newEvent.eventdesc=self.eventDescTextField.text;
NSString *wkst = eventDescTextField.text;
NSNumber *wk = [NSNumber numberWithInteger: [wkst integerValue]];
newEvent.weeksout = wk;
所以现在我知道我需要告诉事件实体使用当前配置文件..我如何访问关系?