Iphone 为核心数据中的对象赋值
下面是我的代码片段:Iphone 为核心数据中的对象赋值,iphone,ios,core-data,Iphone,Ios,Core Data,下面是我的代码片段: NSFetchRequest *request= [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Login" inManagedObjectContext:self.managedObjectContext]; NSPredicate *predicate =[NSPredicate predicateWithFormat:@
NSFetchRequest *request= [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Login" inManagedObjectContext:self.managedObjectContext];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"userid==%@ AND password==%@",useridentered, passwordentered];
[request setEntity:entity];
[request setPredicate:predicate];
NSError *anyError=Nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:request error:&anyError];
Login *login = [fetchedObjects objectAtIndex:0];
Information *information = [NSEntityDescription insertNewObjectForEntityForName:@"Information" inManagedObjectContext:self.managedObjectContext];
login.information = information;
login.information.title = informationTitleTextView.text;
login.information.info_1 = information1textview.text;
login.information.info_2 = information2textview.text;
[self.managedObjectContext save:nil]; // write to database
NSLog(@"login.information %@",login.information.title);
NSLog(@"login.title %@", login.userid);
[self.delegate savebuttontapped:self];
问题是,它第一次运行良好。但当我再次为同一用户添加信息时,它会覆盖现有的信息。如何确保将其写入下一行?您正在为该信息创建一个新的托管对象(新的数据库行): 然后将其分配给用户
login.information = information;
这不会从数据库中删除旧信息,但用户会失去与它的关系
我假设您想要的是将多个信息
实例连接到一个登录
实例。
这意味着您必须打开托管对象模型,并将一对一关系更改为一对多关系
那么您的代码将是:
[login.informations addObject:information];
或
您正在为信息创建一个新的托管对象(新数据库行): 然后将其分配给用户
login.information = information;
这不会从数据库中删除旧信息,但用户会失去与它的关系
我假设您想要的是将多个信息
实例连接到一个登录
实例。
这意味着您必须打开托管对象模型,并将一对一关系更改为一对多关系
那么您的代码将是:
[login.informations addObject:information];
或
@iamsult我应该做什么格式设置?你确定要将密码保存到数据库中吗?@iamsult我应该做什么格式设置?你确定要将密码保存到数据库中吗?