我试图更新我的coredata实体,但我无法确定如何提交更改。
我从桌面视图中传递了一个NSManagedobjectcontext对象,并使用它在下一个屏幕上显示信息。
我的问题是我所做的任何改变都不会提交。我无法锻炼如何将传递的对象与核心数据联系起来。如果我不能这样做我如何选择正确的实体条目?有没有找到关键的coredata使用?
由于
这是代码
NSFetchRequest *request = [[NSFetchRequest alloc] init];
self.fetchedResultsController = [self fetchedResultsController];
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Contact" inManagedObjectContext:self.managedObjectContext];
[request setEntity:[NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:context]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sites == %@", results];
[request setPredicate:predicate];
Contact *writeobject = [context executeFetchRequest:request error: nil];
我现在收到错误[联系人姓名]未经识别的选择人员发送到实例
答案 0 :(得分:2)
这一行:
[request setEntity:[NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:context]];
错误是因为您应该设置获取请求的实体,而您实际正在做的是创建一个新的托管对象实例,将其插入上下文并将其设置为实体 - 它不是&#39 ;吨。因此,您第一次使用时会遇到异常。
更改您的代码以删除该行,并使用实体名称创建获取请求:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Contact"];