【发布时间】:2014-08-13 15:21:49
【问题描述】:
经过三天尝试独自完成并阅读了很多主题后,无法在核心数据中配置一对多关系。
在我的应用程序中,我将所有新用户信息保存在一个名为“用户”的实体中:
Users *dataUsers = [NSEntityDescription insertNewObjectForEntityForName:@"Users" inManagedObjectContext:_managedObjectContext];
[dataUsers setUsername:usernameRegistration.text.capitalizedString];
[dataUsers setPassword:passwordRegistration1.text];
[dataUsers setEmailAddress:mail1.text];
[dataUsers setRightOrLeft:[NSNumber numberWithInteger:rightOrLeftHanded.selectedSegmentIndex ]];
NSError *error = nil;
if(![_managedObjectContext save:&error]) {
//handle the error
}
现在我在不同的视图控制器中调用所有这些信息来执行识别用户名 - 密码并访问下一页。
AppDelegate *appDelegate = (AppDelegate*) [[UIApplication sharedApplication]delegate];
_managedObjectContext=[appDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *usersDescription= [NSEntityDescription entityForName:@"Users" inManagedObjectContext:_managedObjectContext];
[request setEntity:usersDescription];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"username" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSMutableArray *mutableFetchresults = [[_managedObjectContext executeFetchRequest:request error:&error]mutableCopy];
if(mutableFetchresults == nil) {
//handle error
}
[self setUsersData:mutableFetchresults];
// different steps for the recognition
好的,每个用户都可以登录并访问下一页。
现在,在下一页中,用户必须创建一个新会话。所以我创建了一个名为 Sessions 的新实体。每个用户可以有多个会话,但每个会话仅与一个用户相关联。
Sessions *session = [NSEntityDescription insertNewObjectForEntityForName:@"Sessions" inManagedObjectContext:_managedObjectContext];
NSNumber *howManySwingsSessionSaved = [NSNumber numberWithInteger:howManySwingsSession];
[session setName:_sessionNameTextField.text];
[session setHowManySwings:howManySwingsSessionSaved];
[session setClub:choosenClub];
NSDate *dateSaved = [NSDate date];
[session setDate:dateSaved];
NSError *error = nil;
if(![_managedObjectContext save:&error]) {
//handle the error
}
每个会话都已成功保存。 所以我的问题是:如何将与当前用户创建的新会话链接到我的应用程序中? 我想获取当前用户并将他添加到这个新会话中。 实际上,我的代码分别保存了每个用户和每个会话。
所有帮助将不胜感激:)
谢谢大家!!
编辑: 我已经在 xcdmodel 中创建了关系
【问题讨论】:
-
为了存储用户名和密码,通常最好通过 NSURLCredentialStorage API 使用 Keychain 来存储。
-
是的,我知道,但我的应用只是概念验证,所以没关系。我永远不会在苹果商店发布我的应用程序
标签: ios core-data entity-relationship