假设我有 2 个实体——运动员:带有“全名”属性——评估:带有“pullups”属性——我想为每个名字设置多个评估,但是我如何告诉它我想要哪个名字将特定的评估添加到?
我的应用程序与 iOS 预装的联系人应用程序非常相似。根视图控制器有我的第一个实体,运动员。这是一个显示所有运动员的表格视图。当您选择一名运动员时,它会显示他/她的所有信息,并且有一个名为 show eval 的按钮。Eval 是我的第二个实体。Athlete 与 Eval 是一对多的关系,这意味着一个运动员可以有多个 eval,但 eval 只能有一个运动员。我知道如何添加评估,但是当我添加它们时,它们就在那里,他们没有所有者,所以无论我选择哪个运动员,它都只会显示所有评估。如何创建与所选运动员相关的评估?
allevals.h
//the athlete selected pushes a tableviewcontroller with all evals, but I want it to only show evals for the athlete selected.
-(void)viewWillAppear:(BOOL)animated{
self.title = [NSString stringWithFormat:@"%@'s Evaluations",_athletesFullName];
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
_managedObjectContext = [appDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *eval = [NSEntityDescription entityForName:@"Eval" inManagedObjectContext:_managedObjectContext];
[request setEntity:eval];
NSSortDescriptor *sortDescriptor =
[[NSSortDescriptor alloc] initWithKey:@"date_recorded"
ascending:NO
selector:@selector(localizedCaseInsensitiveCompare:)];
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 setEvalArray:mutableFetchResults];
[self.tableView reloadData];
}
视图控制器如下,所有运动员的tableview都是root tableviewcontroller,然后有一个add barbuttonitem可以让你添加运动员。它重新加载视图,然后在 tableview 上你有你新添加的运动员,你点击他,然后它显示细节,加上一个按钮来查看他的 evals。从那里,它是另一个带有 barbuttonitem 的 eval 表视图用于添加。问题是,我不知道如何告诉刚刚添加的 eval 它的所有者是谁。