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我应该做什么格式设置?你确定要将密码保存到数据库中吗?